diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-24 23:00:58 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-02-24 23:00:58 -0500 |
commit | ab7826595e9ec51a51f622c5fc91e2f59440481a (patch) | |
tree | 34241b399fa7a12c260e06e6c1c31bc69d46e1e3 /drivers/mfd/wm5102-tables.c | |
parent | 21fbd5809ad126b949206d78e0a0e07ec872ea11 (diff) | |
parent | ff7109fa632654eaef657186f2942f5b679023d6 (diff) |
Merge tag 'mfd-3.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6
Pull MFS updates from Samuel Ortiz:
"This is the MFD pull request for the 3.9 merge window.
No new drivers this time, but a bunch of fairly big cleanups:
- Roger Quadros worked on a OMAP USBHS and TLL platform data
consolidation, OMAP5 support and clock management code cleanup.
- The first step of a major sync for the ab8500 driver from Lee
Jones. In particular, the debugfs and the sysct interfaces got
extended and improved.
- Peter Ujfalusi sent a nice patchset for cleaning and fixing the
twl-core driver, with a much needed module id lookup code
improvement.
- The regular wm5102 and arizona cleanups and fixes from Mark Brown.
- Laxman Dewangan extended the palmas APIs in order to implement the
palmas GPIO and rt drivers.
- Laxman also added DT support for the tps65090 driver.
- The Intel SCH and ICH drivers got a couple fixes from Aaron Sierra
and Darren Hart.
- Linus Walleij patchset for the ab8500 driver allowed ab8500 and
ab9540 based devices to switch to the new abx500 pin-ctrl driver.
- The max8925 now has device tree and irqdomain support thanks to
Qing Xu.
- The recently added rtsx driver got a few cleanups and fixes for a
better card detection code path and now also supports the RTS5227
chipset, thanks to Wei Wang and Roger Tseng."
* tag 'mfd-3.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (109 commits)
mfd: lpc_ich: Use devres API to allocate private data
mfd: lpc_ich: Add Device IDs for Intel Wellsburg PCH
mfd: lpc_sch: Accomodate partial population of the MFD devices
mfd: da9052-i2c: Staticize da9052_i2c_fix()
mfd: syscon: Fix sparse warning
mfd: twl-core: Fix kernel panic on boot
mfd: rtsx: Fix issue that booting OS with SD card inserted
mfd: ab8500: Fix compile error
mfd: Add missing GENERIC_HARDIRQS dependecies
Documentation: Add docs for max8925 dt
mfd: max8925: Add dts
mfd: max8925: Support dt for backlight
mfd: max8925: Fix onkey driver irq base
mfd: max8925: Fix mfd device register failure
mfd: max8925: Add irqdomain for dt
mfd: vexpress: Allow vexpress-sysreg to self-initialise
mfd: rtsx: Support RTS5227
mfd: rtsx: Implement driving adjustment to device-dependent callbacks
mfd: vexpress: Add pseudo-GPIO based LEDs
mfd: ab8500: Rename ab8500 to abx500 for hwmon driver
...
Diffstat (limited to 'drivers/mfd/wm5102-tables.c')
-rw-r--r-- | drivers/mfd/wm5102-tables.c | 130 |
1 files changed, 59 insertions, 71 deletions
diff --git a/drivers/mfd/wm5102-tables.c b/drivers/mfd/wm5102-tables.c index a9d9d41d95d3..a433f580aa4c 100644 --- a/drivers/mfd/wm5102-tables.c +++ b/drivers/mfd/wm5102-tables.c | |||
@@ -59,12 +59,13 @@ static const struct reg_default wm5102_reva_patch[] = { | |||
59 | static const struct reg_default wm5102_revb_patch[] = { | 59 | static const struct reg_default wm5102_revb_patch[] = { |
60 | { 0x80, 0x0003 }, | 60 | { 0x80, 0x0003 }, |
61 | { 0x081, 0xE022 }, | 61 | { 0x081, 0xE022 }, |
62 | { 0x410, 0x6080 }, | 62 | { 0x410, 0x4080 }, |
63 | { 0x418, 0x6080 }, | 63 | { 0x418, 0x4080 }, |
64 | { 0x420, 0x6080 }, | 64 | { 0x420, 0x4080 }, |
65 | { 0x428, 0xC000 }, | 65 | { 0x428, 0xC000 }, |
66 | { 0x441, 0x8014 }, | 66 | { 0x4B0, 0x0066 }, |
67 | { 0x458, 0x000b }, | 67 | { 0x458, 0x000b }, |
68 | { 0x212, 0x0000 }, | ||
68 | { 0x80, 0x0000 }, | 69 | { 0x80, 0x0000 }, |
69 | }; | 70 | }; |
70 | 71 | ||
@@ -231,11 +232,9 @@ const struct regmap_irq_chip wm5102_irq = { | |||
231 | static const struct reg_default wm5102_reg_default[] = { | 232 | static const struct reg_default wm5102_reg_default[] = { |
232 | { 0x00000008, 0x0019 }, /* R8 - Ctrl IF SPI CFG 1 */ | 233 | { 0x00000008, 0x0019 }, /* R8 - Ctrl IF SPI CFG 1 */ |
233 | { 0x00000009, 0x0001 }, /* R9 - Ctrl IF I2C1 CFG 1 */ | 234 | { 0x00000009, 0x0001 }, /* R9 - Ctrl IF I2C1 CFG 1 */ |
234 | { 0x0000000D, 0x0000 }, /* R13 - Ctrl IF Status 1 */ | ||
235 | { 0x00000016, 0x0000 }, /* R22 - Write Sequencer Ctrl 0 */ | 235 | { 0x00000016, 0x0000 }, /* R22 - Write Sequencer Ctrl 0 */ |
236 | { 0x00000017, 0x0000 }, /* R23 - Write Sequencer Ctrl 1 */ | 236 | { 0x00000017, 0x0000 }, /* R23 - Write Sequencer Ctrl 1 */ |
237 | { 0x00000018, 0x0000 }, /* R24 - Write Sequencer Ctrl 2 */ | 237 | { 0x00000018, 0x0000 }, /* R24 - Write Sequencer Ctrl 2 */ |
238 | { 0x0000001A, 0x0000 }, /* R26 - Write Sequencer PROM */ | ||
239 | { 0x00000020, 0x0000 }, /* R32 - Tone Generator 1 */ | 238 | { 0x00000020, 0x0000 }, /* R32 - Tone Generator 1 */ |
240 | { 0x00000021, 0x1000 }, /* R33 - Tone Generator 2 */ | 239 | { 0x00000021, 0x1000 }, /* R33 - Tone Generator 2 */ |
241 | { 0x00000022, 0x0000 }, /* R34 - Tone Generator 3 */ | 240 | { 0x00000022, 0x0000 }, /* R34 - Tone Generator 3 */ |
@@ -250,12 +249,14 @@ static const struct reg_default wm5102_reg_default[] = { | |||
250 | { 0x00000062, 0x01FF }, /* R98 - Sample Rate Sequence Select 2 */ | 249 | { 0x00000062, 0x01FF }, /* R98 - Sample Rate Sequence Select 2 */ |
251 | { 0x00000063, 0x01FF }, /* R99 - Sample Rate Sequence Select 3 */ | 250 | { 0x00000063, 0x01FF }, /* R99 - Sample Rate Sequence Select 3 */ |
252 | { 0x00000064, 0x01FF }, /* R100 - Sample Rate Sequence Select 4 */ | 251 | { 0x00000064, 0x01FF }, /* R100 - Sample Rate Sequence Select 4 */ |
253 | { 0x00000068, 0x01FF }, /* R104 - Always On Triggers Sequence Select 1 */ | 252 | { 0x00000066, 0x01FF }, /* R102 - Always On Triggers Sequence Select 1 */ |
254 | { 0x00000069, 0x01FF }, /* R105 - Always On Triggers Sequence Select 2 */ | 253 | { 0x00000067, 0x01FF }, /* R103 - Always On Triggers Sequence Select 2 */ |
255 | { 0x0000006A, 0x01FF }, /* R106 - Always On Triggers Sequence Select 3 */ | 254 | { 0x00000068, 0x01FF }, /* R104 - Always On Triggers Sequence Select 3 */ |
256 | { 0x0000006B, 0x01FF }, /* R107 - Always On Triggers Sequence Select 4 */ | 255 | { 0x00000069, 0x01FF }, /* R105 - Always On Triggers Sequence Select 4 */ |
257 | { 0x0000006C, 0x01FF }, /* R108 - Always On Triggers Sequence Select 5 */ | 256 | { 0x0000006A, 0x01FF }, /* R106 - Always On Triggers Sequence Select 5 */ |
258 | { 0x0000006D, 0x01FF }, /* R109 - Always On Triggers Sequence Select 6 */ | 257 | { 0x0000006B, 0x01FF }, /* R107 - Always On Triggers Sequence Select 6 */ |
258 | { 0x0000006E, 0x01FF }, /* R110 - Trigger Sequence Select 32 */ | ||
259 | { 0x0000006F, 0x01FF }, /* R111 - Trigger Sequence Select 33 */ | ||
259 | { 0x00000070, 0x0000 }, /* R112 - Comfort Noise Generator */ | 260 | { 0x00000070, 0x0000 }, /* R112 - Comfort Noise Generator */ |
260 | { 0x00000090, 0x0000 }, /* R144 - Haptics Control 1 */ | 261 | { 0x00000090, 0x0000 }, /* R144 - Haptics Control 1 */ |
261 | { 0x00000091, 0x7FFF }, /* R145 - Haptics Control 2 */ | 262 | { 0x00000091, 0x7FFF }, /* R145 - Haptics Control 2 */ |
@@ -265,13 +266,14 @@ static const struct reg_default wm5102_reg_default[] = { | |||
265 | { 0x00000095, 0x0000 }, /* R149 - Haptics phase 2 duration */ | 266 | { 0x00000095, 0x0000 }, /* R149 - Haptics phase 2 duration */ |
266 | { 0x00000096, 0x0000 }, /* R150 - Haptics phase 3 intensity */ | 267 | { 0x00000096, 0x0000 }, /* R150 - Haptics phase 3 intensity */ |
267 | { 0x00000097, 0x0000 }, /* R151 - Haptics phase 3 duration */ | 268 | { 0x00000097, 0x0000 }, /* R151 - Haptics phase 3 duration */ |
268 | { 0x00000100, 0x0001 }, /* R256 - Clock 32k 1 */ | 269 | { 0x00000100, 0x0002 }, /* R256 - Clock 32k 1 */ |
269 | { 0x00000101, 0x0304 }, /* R257 - System Clock 1 */ | 270 | { 0x00000101, 0x0304 }, /* R257 - System Clock 1 */ |
270 | { 0x00000102, 0x0011 }, /* R258 - Sample rate 1 */ | 271 | { 0x00000102, 0x0011 }, /* R258 - Sample rate 1 */ |
271 | { 0x00000103, 0x0011 }, /* R259 - Sample rate 2 */ | 272 | { 0x00000103, 0x0011 }, /* R259 - Sample rate 2 */ |
272 | { 0x00000104, 0x0011 }, /* R260 - Sample rate 3 */ | 273 | { 0x00000104, 0x0011 }, /* R260 - Sample rate 3 */ |
273 | { 0x00000112, 0x0305 }, /* R274 - Async clock 1 */ | 274 | { 0x00000112, 0x0305 }, /* R274 - Async clock 1 */ |
274 | { 0x00000113, 0x0011 }, /* R275 - Async sample rate 1 */ | 275 | { 0x00000113, 0x0011 }, /* R275 - Async sample rate 1 */ |
276 | { 0x00000114, 0x0011 }, /* R276 - Async sample rate 2 */ | ||
275 | { 0x00000149, 0x0000 }, /* R329 - Output system clock */ | 277 | { 0x00000149, 0x0000 }, /* R329 - Output system clock */ |
276 | { 0x0000014A, 0x0000 }, /* R330 - Output async clock */ | 278 | { 0x0000014A, 0x0000 }, /* R330 - Output async clock */ |
277 | { 0x00000152, 0x0000 }, /* R338 - Rate Estimator 1 */ | 279 | { 0x00000152, 0x0000 }, /* R338 - Rate Estimator 1 */ |
@@ -280,13 +282,14 @@ static const struct reg_default wm5102_reg_default[] = { | |||
280 | { 0x00000155, 0x0000 }, /* R341 - Rate Estimator 4 */ | 282 | { 0x00000155, 0x0000 }, /* R341 - Rate Estimator 4 */ |
281 | { 0x00000156, 0x0000 }, /* R342 - Rate Estimator 5 */ | 283 | { 0x00000156, 0x0000 }, /* R342 - Rate Estimator 5 */ |
282 | { 0x00000161, 0x0000 }, /* R353 - Dynamic Frequency Scaling 1 */ | 284 | { 0x00000161, 0x0000 }, /* R353 - Dynamic Frequency Scaling 1 */ |
283 | { 0x00000171, 0x0000 }, /* R369 - FLL1 Control 1 */ | 285 | { 0x00000171, 0x0002 }, /* R369 - FLL1 Control 1 */ |
284 | { 0x00000172, 0x0008 }, /* R370 - FLL1 Control 2 */ | 286 | { 0x00000172, 0x0008 }, /* R370 - FLL1 Control 2 */ |
285 | { 0x00000173, 0x0018 }, /* R371 - FLL1 Control 3 */ | 287 | { 0x00000173, 0x0018 }, /* R371 - FLL1 Control 3 */ |
286 | { 0x00000174, 0x007D }, /* R372 - FLL1 Control 4 */ | 288 | { 0x00000174, 0x007D }, /* R372 - FLL1 Control 4 */ |
287 | { 0x00000175, 0x0004 }, /* R373 - FLL1 Control 5 */ | 289 | { 0x00000175, 0x0004 }, /* R373 - FLL1 Control 5 */ |
288 | { 0x00000176, 0x0000 }, /* R374 - FLL1 Control 6 */ | 290 | { 0x00000176, 0x0000 }, /* R374 - FLL1 Control 6 */ |
289 | { 0x00000177, 0x0181 }, /* R375 - FLL1 Loop Filter Test 1 */ | 291 | { 0x00000177, 0x0181 }, /* R375 - FLL1 Loop Filter Test 1 */ |
292 | { 0x00000178, 0x0000 }, /* R376 - FLL1 NCO Test 0 */ | ||
290 | { 0x00000181, 0x0000 }, /* R385 - FLL1 Synchroniser 1 */ | 293 | { 0x00000181, 0x0000 }, /* R385 - FLL1 Synchroniser 1 */ |
291 | { 0x00000182, 0x0000 }, /* R386 - FLL1 Synchroniser 2 */ | 294 | { 0x00000182, 0x0000 }, /* R386 - FLL1 Synchroniser 2 */ |
292 | { 0x00000183, 0x0000 }, /* R387 - FLL1 Synchroniser 3 */ | 295 | { 0x00000183, 0x0000 }, /* R387 - FLL1 Synchroniser 3 */ |
@@ -302,6 +305,7 @@ static const struct reg_default wm5102_reg_default[] = { | |||
302 | { 0x00000195, 0x0004 }, /* R405 - FLL2 Control 5 */ | 305 | { 0x00000195, 0x0004 }, /* R405 - FLL2 Control 5 */ |
303 | { 0x00000196, 0x0000 }, /* R406 - FLL2 Control 6 */ | 306 | { 0x00000196, 0x0000 }, /* R406 - FLL2 Control 6 */ |
304 | { 0x00000197, 0x0000 }, /* R407 - FLL2 Loop Filter Test 1 */ | 307 | { 0x00000197, 0x0000 }, /* R407 - FLL2 Loop Filter Test 1 */ |
308 | { 0x00000198, 0x0000 }, /* R408 - FLL2 NCO Test 0 */ | ||
305 | { 0x000001A1, 0x0000 }, /* R417 - FLL2 Synchroniser 1 */ | 309 | { 0x000001A1, 0x0000 }, /* R417 - FLL2 Synchroniser 1 */ |
306 | { 0x000001A2, 0x0000 }, /* R418 - FLL2 Synchroniser 2 */ | 310 | { 0x000001A2, 0x0000 }, /* R418 - FLL2 Synchroniser 2 */ |
307 | { 0x000001A3, 0x0000 }, /* R419 - FLL2 Synchroniser 3 */ | 311 | { 0x000001A3, 0x0000 }, /* R419 - FLL2 Synchroniser 3 */ |
@@ -317,8 +321,12 @@ static const struct reg_default wm5102_reg_default[] = { | |||
317 | { 0x00000218, 0x01A6 }, /* R536 - Mic Bias Ctrl 1 */ | 321 | { 0x00000218, 0x01A6 }, /* R536 - Mic Bias Ctrl 1 */ |
318 | { 0x00000219, 0x01A6 }, /* R537 - Mic Bias Ctrl 2 */ | 322 | { 0x00000219, 0x01A6 }, /* R537 - Mic Bias Ctrl 2 */ |
319 | { 0x0000021A, 0x01A6 }, /* R538 - Mic Bias Ctrl 3 */ | 323 | { 0x0000021A, 0x01A6 }, /* R538 - Mic Bias Ctrl 3 */ |
324 | { 0x00000225, 0x0400 }, /* R549 - HP Ctrl 1L */ | ||
325 | { 0x00000226, 0x0400 }, /* R550 - HP Ctrl 1R */ | ||
320 | { 0x00000293, 0x0000 }, /* R659 - Accessory Detect Mode 1 */ | 326 | { 0x00000293, 0x0000 }, /* R659 - Accessory Detect Mode 1 */ |
321 | { 0x0000029B, 0x0020 }, /* R667 - Headphone Detect 1 */ | 327 | { 0x0000029B, 0x0020 }, /* R667 - Headphone Detect 1 */ |
328 | { 0x0000029C, 0x0000 }, /* R668 - Headphone Detect 2 */ | ||
329 | { 0x0000029F, 0x0000 }, /* R671 - Headphone Detect Test */ | ||
322 | { 0x000002A2, 0x0000 }, /* R674 - Micd clamp control */ | 330 | { 0x000002A2, 0x0000 }, /* R674 - Micd clamp control */ |
323 | { 0x000002A3, 0x1102 }, /* R675 - Mic Detect 1 */ | 331 | { 0x000002A3, 0x1102 }, /* R675 - Mic Detect 1 */ |
324 | { 0x000002A4, 0x009F }, /* R676 - Mic Detect 2 */ | 332 | { 0x000002A4, 0x009F }, /* R676 - Mic Detect 2 */ |
@@ -350,53 +358,44 @@ static const struct reg_default wm5102_reg_default[] = { | |||
350 | { 0x00000400, 0x0000 }, /* R1024 - Output Enables 1 */ | 358 | { 0x00000400, 0x0000 }, /* R1024 - Output Enables 1 */ |
351 | { 0x00000408, 0x0000 }, /* R1032 - Output Rate 1 */ | 359 | { 0x00000408, 0x0000 }, /* R1032 - Output Rate 1 */ |
352 | { 0x00000409, 0x0022 }, /* R1033 - Output Volume Ramp */ | 360 | { 0x00000409, 0x0022 }, /* R1033 - Output Volume Ramp */ |
353 | { 0x00000410, 0x0080 }, /* R1040 - Output Path Config 1L */ | 361 | { 0x00000410, 0x4080 }, /* R1040 - Output Path Config 1L */ |
354 | { 0x00000411, 0x0180 }, /* R1041 - DAC Digital Volume 1L */ | 362 | { 0x00000411, 0x0180 }, /* R1041 - DAC Digital Volume 1L */ |
355 | { 0x00000412, 0x0080 }, /* R1042 - DAC Volume Limit 1L */ | 363 | { 0x00000412, 0x0081 }, /* R1042 - DAC Volume Limit 1L */ |
356 | { 0x00000413, 0x0001 }, /* R1043 - Noise Gate Select 1L */ | 364 | { 0x00000413, 0x0001 }, /* R1043 - Noise Gate Select 1L */ |
357 | { 0x00000414, 0x0080 }, /* R1044 - Output Path Config 1R */ | 365 | { 0x00000414, 0x0080 }, /* R1044 - Output Path Config 1R */ |
358 | { 0x00000415, 0x0180 }, /* R1045 - DAC Digital Volume 1R */ | 366 | { 0x00000415, 0x0180 }, /* R1045 - DAC Digital Volume 1R */ |
359 | { 0x00000416, 0x0080 }, /* R1046 - DAC Volume Limit 1R */ | 367 | { 0x00000416, 0x0081 }, /* R1046 - DAC Volume Limit 1R */ |
360 | { 0x00000417, 0x0002 }, /* R1047 - Noise Gate Select 1R */ | 368 | { 0x00000417, 0x0002 }, /* R1047 - Noise Gate Select 1R */ |
361 | { 0x00000418, 0x0080 }, /* R1048 - Output Path Config 2L */ | 369 | { 0x00000418, 0x4080 }, /* R1048 - Output Path Config 2L */ |
362 | { 0x00000419, 0x0180 }, /* R1049 - DAC Digital Volume 2L */ | 370 | { 0x00000419, 0x0180 }, /* R1049 - DAC Digital Volume 2L */ |
363 | { 0x0000041A, 0x0080 }, /* R1050 - DAC Volume Limit 2L */ | 371 | { 0x0000041A, 0x0081 }, /* R1050 - DAC Volume Limit 2L */ |
364 | { 0x0000041B, 0x0004 }, /* R1051 - Noise Gate Select 2L */ | 372 | { 0x0000041B, 0x0004 }, /* R1051 - Noise Gate Select 2L */ |
365 | { 0x0000041C, 0x0080 }, /* R1052 - Output Path Config 2R */ | 373 | { 0x0000041C, 0x0080 }, /* R1052 - Output Path Config 2R */ |
366 | { 0x0000041D, 0x0180 }, /* R1053 - DAC Digital Volume 2R */ | 374 | { 0x0000041D, 0x0180 }, /* R1053 - DAC Digital Volume 2R */ |
367 | { 0x0000041E, 0x0080 }, /* R1054 - DAC Volume Limit 2R */ | 375 | { 0x0000041E, 0x0081 }, /* R1054 - DAC Volume Limit 2R */ |
368 | { 0x0000041F, 0x0008 }, /* R1055 - Noise Gate Select 2R */ | 376 | { 0x0000041F, 0x0008 }, /* R1055 - Noise Gate Select 2R */ |
369 | { 0x00000420, 0x0080 }, /* R1056 - Output Path Config 3L */ | 377 | { 0x00000420, 0x4080 }, /* R1056 - Output Path Config 3L */ |
370 | { 0x00000421, 0x0180 }, /* R1057 - DAC Digital Volume 3L */ | 378 | { 0x00000421, 0x0180 }, /* R1057 - DAC Digital Volume 3L */ |
371 | { 0x00000422, 0x0080 }, /* R1058 - DAC Volume Limit 3L */ | 379 | { 0x00000422, 0x0081 }, /* R1058 - DAC Volume Limit 3L */ |
372 | { 0x00000423, 0x0010 }, /* R1059 - Noise Gate Select 3L */ | 380 | { 0x00000423, 0x0010 }, /* R1059 - Noise Gate Select 3L */ |
373 | { 0x00000424, 0x0080 }, /* R1060 - Output Path Config 3R */ | 381 | { 0x00000428, 0xC000 }, /* R1064 - Output Path Config 4L */ |
374 | { 0x00000425, 0x0180 }, /* R1061 - DAC Digital Volume 3R */ | ||
375 | { 0x00000426, 0x0080 }, /* R1062 - DAC Volume Limit 3R */ | ||
376 | { 0x00000428, 0x0000 }, /* R1064 - Output Path Config 4L */ | ||
377 | { 0x00000429, 0x0180 }, /* R1065 - DAC Digital Volume 4L */ | 382 | { 0x00000429, 0x0180 }, /* R1065 - DAC Digital Volume 4L */ |
378 | { 0x0000042A, 0x0080 }, /* R1066 - Out Volume 4L */ | 383 | { 0x0000042A, 0x0081 }, /* R1066 - Out Volume 4L */ |
379 | { 0x0000042B, 0x0040 }, /* R1067 - Noise Gate Select 4L */ | 384 | { 0x0000042B, 0x0040 }, /* R1067 - Noise Gate Select 4L */ |
380 | { 0x0000042C, 0x0000 }, /* R1068 - Output Path Config 4R */ | ||
381 | { 0x0000042D, 0x0180 }, /* R1069 - DAC Digital Volume 4R */ | 385 | { 0x0000042D, 0x0180 }, /* R1069 - DAC Digital Volume 4R */ |
382 | { 0x0000042E, 0x0080 }, /* R1070 - Out Volume 4R */ | 386 | { 0x0000042E, 0x0081 }, /* R1070 - Out Volume 4R */ |
383 | { 0x0000042F, 0x0080 }, /* R1071 - Noise Gate Select 4R */ | 387 | { 0x0000042F, 0x0080 }, /* R1071 - Noise Gate Select 4R */ |
384 | { 0x00000430, 0x0000 }, /* R1072 - Output Path Config 5L */ | 388 | { 0x00000430, 0x0000 }, /* R1072 - Output Path Config 5L */ |
385 | { 0x00000431, 0x0180 }, /* R1073 - DAC Digital Volume 5L */ | 389 | { 0x00000431, 0x0180 }, /* R1073 - DAC Digital Volume 5L */ |
386 | { 0x00000432, 0x0080 }, /* R1074 - DAC Volume Limit 5L */ | 390 | { 0x00000432, 0x0081 }, /* R1074 - DAC Volume Limit 5L */ |
387 | { 0x00000433, 0x0100 }, /* R1075 - Noise Gate Select 5L */ | 391 | { 0x00000433, 0x0100 }, /* R1075 - Noise Gate Select 5L */ |
388 | { 0x00000434, 0x0000 }, /* R1076 - Output Path Config 5R */ | ||
389 | { 0x00000435, 0x0180 }, /* R1077 - DAC Digital Volume 5R */ | 392 | { 0x00000435, 0x0180 }, /* R1077 - DAC Digital Volume 5R */ |
390 | { 0x00000436, 0x0080 }, /* R1078 - DAC Volume Limit 5R */ | 393 | { 0x00000436, 0x0081 }, /* R1078 - DAC Volume Limit 5R */ |
391 | { 0x00000437, 0x0200 }, /* R1079 - Noise Gate Select 5R */ | 394 | { 0x00000437, 0x0200 }, /* R1079 - Noise Gate Select 5R */ |
392 | { 0x00000450, 0x0000 }, /* R1104 - DAC AEC Control 1 */ | 395 | { 0x00000450, 0x0000 }, /* R1104 - DAC AEC Control 1 */ |
393 | { 0x00000458, 0x0001 }, /* R1112 - Noise Gate Control */ | 396 | { 0x00000458, 0x0001 }, /* R1112 - Noise Gate Control */ |
394 | { 0x00000490, 0x0069 }, /* R1168 - PDM SPK1 CTRL 1 */ | 397 | { 0x00000490, 0x0069 }, /* R1168 - PDM SPK1 CTRL 1 */ |
395 | { 0x00000491, 0x0000 }, /* R1169 - PDM SPK1 CTRL 2 */ | 398 | { 0x00000491, 0x0000 }, /* R1169 - PDM SPK1 CTRL 2 */ |
396 | { 0x000004DC, 0x0000 }, /* R1244 - DAC comp 1 */ | ||
397 | { 0x000004DD, 0x0000 }, /* R1245 - DAC comp 2 */ | ||
398 | { 0x000004DE, 0x0000 }, /* R1246 - DAC comp 3 */ | ||
399 | { 0x000004DF, 0x0000 }, /* R1247 - DAC comp 4 */ | ||
400 | { 0x00000500, 0x000C }, /* R1280 - AIF1 BCLK Ctrl */ | 399 | { 0x00000500, 0x000C }, /* R1280 - AIF1 BCLK Ctrl */ |
401 | { 0x00000501, 0x0008 }, /* R1281 - AIF1 Tx Pin Ctrl */ | 400 | { 0x00000501, 0x0008 }, /* R1281 - AIF1 Tx Pin Ctrl */ |
402 | { 0x00000502, 0x0000 }, /* R1282 - AIF1 Rx Pin Ctrl */ | 401 | { 0x00000502, 0x0000 }, /* R1282 - AIF1 Rx Pin Ctrl */ |
@@ -424,7 +423,6 @@ static const struct reg_default wm5102_reg_default[] = { | |||
424 | { 0x00000518, 0x0007 }, /* R1304 - AIF1 Frame Ctrl 18 */ | 423 | { 0x00000518, 0x0007 }, /* R1304 - AIF1 Frame Ctrl 18 */ |
425 | { 0x00000519, 0x0000 }, /* R1305 - AIF1 Tx Enables */ | 424 | { 0x00000519, 0x0000 }, /* R1305 - AIF1 Tx Enables */ |
426 | { 0x0000051A, 0x0000 }, /* R1306 - AIF1 Rx Enables */ | 425 | { 0x0000051A, 0x0000 }, /* R1306 - AIF1 Rx Enables */ |
427 | { 0x0000051B, 0x0000 }, /* R1307 - AIF1 Force Write */ | ||
428 | { 0x00000540, 0x000C }, /* R1344 - AIF2 BCLK Ctrl */ | 426 | { 0x00000540, 0x000C }, /* R1344 - AIF2 BCLK Ctrl */ |
429 | { 0x00000541, 0x0008 }, /* R1345 - AIF2 Tx Pin Ctrl */ | 427 | { 0x00000541, 0x0008 }, /* R1345 - AIF2 Tx Pin Ctrl */ |
430 | { 0x00000542, 0x0000 }, /* R1346 - AIF2 Rx Pin Ctrl */ | 428 | { 0x00000542, 0x0000 }, /* R1346 - AIF2 Rx Pin Ctrl */ |
@@ -440,7 +438,6 @@ static const struct reg_default wm5102_reg_default[] = { | |||
440 | { 0x00000552, 0x0001 }, /* R1362 - AIF2 Frame Ctrl 12 */ | 438 | { 0x00000552, 0x0001 }, /* R1362 - AIF2 Frame Ctrl 12 */ |
441 | { 0x00000559, 0x0000 }, /* R1369 - AIF2 Tx Enables */ | 439 | { 0x00000559, 0x0000 }, /* R1369 - AIF2 Tx Enables */ |
442 | { 0x0000055A, 0x0000 }, /* R1370 - AIF2 Rx Enables */ | 440 | { 0x0000055A, 0x0000 }, /* R1370 - AIF2 Rx Enables */ |
443 | { 0x0000055B, 0x0000 }, /* R1371 - AIF2 Force Write */ | ||
444 | { 0x00000580, 0x000C }, /* R1408 - AIF3 BCLK Ctrl */ | 441 | { 0x00000580, 0x000C }, /* R1408 - AIF3 BCLK Ctrl */ |
445 | { 0x00000581, 0x0008 }, /* R1409 - AIF3 Tx Pin Ctrl */ | 442 | { 0x00000581, 0x0008 }, /* R1409 - AIF3 Tx Pin Ctrl */ |
446 | { 0x00000582, 0x0000 }, /* R1410 - AIF3 Rx Pin Ctrl */ | 443 | { 0x00000582, 0x0000 }, /* R1410 - AIF3 Rx Pin Ctrl */ |
@@ -456,7 +453,6 @@ static const struct reg_default wm5102_reg_default[] = { | |||
456 | { 0x00000592, 0x0001 }, /* R1426 - AIF3 Frame Ctrl 12 */ | 453 | { 0x00000592, 0x0001 }, /* R1426 - AIF3 Frame Ctrl 12 */ |
457 | { 0x00000599, 0x0000 }, /* R1433 - AIF3 Tx Enables */ | 454 | { 0x00000599, 0x0000 }, /* R1433 - AIF3 Tx Enables */ |
458 | { 0x0000059A, 0x0000 }, /* R1434 - AIF3 Rx Enables */ | 455 | { 0x0000059A, 0x0000 }, /* R1434 - AIF3 Rx Enables */ |
459 | { 0x0000059B, 0x0000 }, /* R1435 - AIF3 Force Write */ | ||
460 | { 0x000005E3, 0x0004 }, /* R1507 - SLIMbus Framer Ref Gear */ | 456 | { 0x000005E3, 0x0004 }, /* R1507 - SLIMbus Framer Ref Gear */ |
461 | { 0x000005E5, 0x0000 }, /* R1509 - SLIMbus Rates 1 */ | 457 | { 0x000005E5, 0x0000 }, /* R1509 - SLIMbus Rates 1 */ |
462 | { 0x000005E6, 0x0000 }, /* R1510 - SLIMbus Rates 2 */ | 458 | { 0x000005E6, 0x0000 }, /* R1510 - SLIMbus Rates 2 */ |
@@ -780,22 +776,6 @@ static const struct reg_default wm5102_reg_default[] = { | |||
780 | { 0x000008CD, 0x0080 }, /* R2253 - DRC1RMIX Input 3 Volume */ | 776 | { 0x000008CD, 0x0080 }, /* R2253 - DRC1RMIX Input 3 Volume */ |
781 | { 0x000008CE, 0x0000 }, /* R2254 - DRC1RMIX Input 4 Source */ | 777 | { 0x000008CE, 0x0000 }, /* R2254 - DRC1RMIX Input 4 Source */ |
782 | { 0x000008CF, 0x0080 }, /* R2255 - DRC1RMIX Input 4 Volume */ | 778 | { 0x000008CF, 0x0080 }, /* R2255 - DRC1RMIX Input 4 Volume */ |
783 | { 0x000008D0, 0x0000 }, /* R2256 - DRC2LMIX Input 1 Source */ | ||
784 | { 0x000008D1, 0x0080 }, /* R2257 - DRC2LMIX Input 1 Volume */ | ||
785 | { 0x000008D2, 0x0000 }, /* R2258 - DRC2LMIX Input 2 Source */ | ||
786 | { 0x000008D3, 0x0080 }, /* R2259 - DRC2LMIX Input 2 Volume */ | ||
787 | { 0x000008D4, 0x0000 }, /* R2260 - DRC2LMIX Input 3 Source */ | ||
788 | { 0x000008D5, 0x0080 }, /* R2261 - DRC2LMIX Input 3 Volume */ | ||
789 | { 0x000008D6, 0x0000 }, /* R2262 - DRC2LMIX Input 4 Source */ | ||
790 | { 0x000008D7, 0x0080 }, /* R2263 - DRC2LMIX Input 4 Volume */ | ||
791 | { 0x000008D8, 0x0000 }, /* R2264 - DRC2RMIX Input 1 Source */ | ||
792 | { 0x000008D9, 0x0080 }, /* R2265 - DRC2RMIX Input 1 Volume */ | ||
793 | { 0x000008DA, 0x0000 }, /* R2266 - DRC2RMIX Input 2 Source */ | ||
794 | { 0x000008DB, 0x0080 }, /* R2267 - DRC2RMIX Input 2 Volume */ | ||
795 | { 0x000008DC, 0x0000 }, /* R2268 - DRC2RMIX Input 3 Source */ | ||
796 | { 0x000008DD, 0x0080 }, /* R2269 - DRC2RMIX Input 3 Volume */ | ||
797 | { 0x000008DE, 0x0000 }, /* R2270 - DRC2RMIX Input 4 Source */ | ||
798 | { 0x000008DF, 0x0080 }, /* R2271 - DRC2RMIX Input 4 Volume */ | ||
799 | { 0x00000900, 0x0000 }, /* R2304 - HPLP1MIX Input 1 Source */ | 779 | { 0x00000900, 0x0000 }, /* R2304 - HPLP1MIX Input 1 Source */ |
800 | { 0x00000901, 0x0080 }, /* R2305 - HPLP1MIX Input 1 Volume */ | 780 | { 0x00000901, 0x0080 }, /* R2305 - HPLP1MIX Input 1 Volume */ |
801 | { 0x00000902, 0x0000 }, /* R2306 - HPLP1MIX Input 2 Source */ | 781 | { 0x00000902, 0x0000 }, /* R2306 - HPLP1MIX Input 2 Source */ |
@@ -887,7 +867,7 @@ static const struct reg_default wm5102_reg_default[] = { | |||
887 | { 0x00000D1B, 0xFFFF }, /* R3355 - IRQ2 Status 4 Mask */ | 867 | { 0x00000D1B, 0xFFFF }, /* R3355 - IRQ2 Status 4 Mask */ |
888 | { 0x00000D1C, 0xFFFF }, /* R3356 - IRQ2 Status 5 Mask */ | 868 | { 0x00000D1C, 0xFFFF }, /* R3356 - IRQ2 Status 5 Mask */ |
889 | { 0x00000D1F, 0x0000 }, /* R3359 - IRQ2 Control */ | 869 | { 0x00000D1F, 0x0000 }, /* R3359 - IRQ2 Control */ |
890 | { 0x00000D41, 0x0000 }, /* R3393 - ADSP2 IRQ0 */ | 870 | { 0x00000D50, 0x0000 }, /* R3408 - AOD wkup and trig */ |
891 | { 0x00000D53, 0xFFFF }, /* R3411 - AOD IRQ Mask IRQ1 */ | 871 | { 0x00000D53, 0xFFFF }, /* R3411 - AOD IRQ Mask IRQ1 */ |
892 | { 0x00000D54, 0xFFFF }, /* R3412 - AOD IRQ Mask IRQ2 */ | 872 | { 0x00000D54, 0xFFFF }, /* R3412 - AOD IRQ Mask IRQ2 */ |
893 | { 0x00000D56, 0x0000 }, /* R3414 - Jack detect debounce */ | 873 | { 0x00000D56, 0x0000 }, /* R3414 - Jack detect debounce */ |
@@ -982,11 +962,6 @@ static const struct reg_default wm5102_reg_default[] = { | |||
982 | { 0x00000E82, 0x0018 }, /* R3714 - DRC1 ctrl3 */ | 962 | { 0x00000E82, 0x0018 }, /* R3714 - DRC1 ctrl3 */ |
983 | { 0x00000E83, 0x0000 }, /* R3715 - DRC1 ctrl4 */ | 963 | { 0x00000E83, 0x0000 }, /* R3715 - DRC1 ctrl4 */ |
984 | { 0x00000E84, 0x0000 }, /* R3716 - DRC1 ctrl5 */ | 964 | { 0x00000E84, 0x0000 }, /* R3716 - DRC1 ctrl5 */ |
985 | { 0x00000E89, 0x0018 }, /* R3721 - DRC2 ctrl1 */ | ||
986 | { 0x00000E8A, 0x0933 }, /* R3722 - DRC2 ctrl2 */ | ||
987 | { 0x00000E8B, 0x0018 }, /* R3723 - DRC2 ctrl3 */ | ||
988 | { 0x00000E8C, 0x0000 }, /* R3724 - DRC2 ctrl4 */ | ||
989 | { 0x00000E8D, 0x0000 }, /* R3725 - DRC2 ctrl5 */ | ||
990 | { 0x00000EC0, 0x0000 }, /* R3776 - HPLPF1_1 */ | 965 | { 0x00000EC0, 0x0000 }, /* R3776 - HPLPF1_1 */ |
991 | { 0x00000EC1, 0x0000 }, /* R3777 - HPLPF1_2 */ | 966 | { 0x00000EC1, 0x0000 }, /* R3777 - HPLPF1_2 */ |
992 | { 0x00000EC4, 0x0000 }, /* R3780 - HPLPF2_1 */ | 967 | { 0x00000EC4, 0x0000 }, /* R3780 - HPLPF2_1 */ |
@@ -997,16 +972,12 @@ static const struct reg_default wm5102_reg_default[] = { | |||
997 | { 0x00000ECD, 0x0000 }, /* R3789 - HPLPF4_2 */ | 972 | { 0x00000ECD, 0x0000 }, /* R3789 - HPLPF4_2 */ |
998 | { 0x00000EE0, 0x0000 }, /* R3808 - ASRC_ENABLE */ | 973 | { 0x00000EE0, 0x0000 }, /* R3808 - ASRC_ENABLE */ |
999 | { 0x00000EE2, 0x0000 }, /* R3810 - ASRC_RATE1 */ | 974 | { 0x00000EE2, 0x0000 }, /* R3810 - ASRC_RATE1 */ |
1000 | { 0x00000EE3, 0x4000 }, /* R3811 - ASRC_RATE2 */ | ||
1001 | { 0x00000EF0, 0x0000 }, /* R3824 - ISRC 1 CTRL 1 */ | 975 | { 0x00000EF0, 0x0000 }, /* R3824 - ISRC 1 CTRL 1 */ |
1002 | { 0x00000EF1, 0x0000 }, /* R3825 - ISRC 1 CTRL 2 */ | 976 | { 0x00000EF1, 0x0000 }, /* R3825 - ISRC 1 CTRL 2 */ |
1003 | { 0x00000EF2, 0x0000 }, /* R3826 - ISRC 1 CTRL 3 */ | 977 | { 0x00000EF2, 0x0000 }, /* R3826 - ISRC 1 CTRL 3 */ |
1004 | { 0x00000EF3, 0x0000 }, /* R3827 - ISRC 2 CTRL 1 */ | 978 | { 0x00000EF3, 0x0000 }, /* R3827 - ISRC 2 CTRL 1 */ |
1005 | { 0x00000EF4, 0x0000 }, /* R3828 - ISRC 2 CTRL 2 */ | 979 | { 0x00000EF4, 0x0000 }, /* R3828 - ISRC 2 CTRL 2 */ |
1006 | { 0x00000EF5, 0x0000 }, /* R3829 - ISRC 2 CTRL 3 */ | 980 | { 0x00000EF5, 0x0000 }, /* R3829 - ISRC 2 CTRL 3 */ |
1007 | { 0x00000EF6, 0x0000 }, /* R3830 - ISRC 3 CTRL 1 */ | ||
1008 | { 0x00000EF7, 0x0000 }, /* R3831 - ISRC 3 CTRL 2 */ | ||
1009 | { 0x00000EF8, 0x0000 }, /* R3832 - ISRC 3 CTRL 3 */ | ||
1010 | { 0x00001100, 0x0010 }, /* R4352 - DSP1 Control 1 */ | 981 | { 0x00001100, 0x0010 }, /* R4352 - DSP1 Control 1 */ |
1011 | { 0x00001101, 0x0000 }, /* R4353 - DSP1 Clocking 1 */ | 982 | { 0x00001101, 0x0000 }, /* R4353 - DSP1 Clocking 1 */ |
1012 | }; | 983 | }; |
@@ -1833,17 +1804,24 @@ static bool wm5102_readable_register(struct device *dev, unsigned int reg) | |||
1833 | case ARIZONA_DSP1_STATUS_1: | 1804 | case ARIZONA_DSP1_STATUS_1: |
1834 | case ARIZONA_DSP1_STATUS_2: | 1805 | case ARIZONA_DSP1_STATUS_2: |
1835 | case ARIZONA_DSP1_STATUS_3: | 1806 | case ARIZONA_DSP1_STATUS_3: |
1807 | case ARIZONA_DSP1_SCRATCH_0: | ||
1808 | case ARIZONA_DSP1_SCRATCH_1: | ||
1809 | case ARIZONA_DSP1_SCRATCH_2: | ||
1810 | case ARIZONA_DSP1_SCRATCH_3: | ||
1836 | return true; | 1811 | return true; |
1837 | default: | 1812 | default: |
1838 | return false; | 1813 | if ((reg >= 0x100000 && reg < 0x106000) || |
1814 | (reg >= 0x180000 && reg < 0x180800) || | ||
1815 | (reg >= 0x190000 && reg < 0x194800) || | ||
1816 | (reg >= 0x1a8000 && reg < 0x1a9800)) | ||
1817 | return true; | ||
1818 | else | ||
1819 | return false; | ||
1839 | } | 1820 | } |
1840 | } | 1821 | } |
1841 | 1822 | ||
1842 | static bool wm5102_volatile_register(struct device *dev, unsigned int reg) | 1823 | static bool wm5102_volatile_register(struct device *dev, unsigned int reg) |
1843 | { | 1824 | { |
1844 | if (reg > 0xffff) | ||
1845 | return true; | ||
1846 | |||
1847 | switch (reg) { | 1825 | switch (reg) { |
1848 | case ARIZONA_SOFTWARE_RESET: | 1826 | case ARIZONA_SOFTWARE_RESET: |
1849 | case ARIZONA_DEVICE_REVISION: | 1827 | case ARIZONA_DEVICE_REVISION: |
@@ -1884,12 +1862,22 @@ static bool wm5102_volatile_register(struct device *dev, unsigned int reg) | |||
1884 | case ARIZONA_DSP1_STATUS_1: | 1862 | case ARIZONA_DSP1_STATUS_1: |
1885 | case ARIZONA_DSP1_STATUS_2: | 1863 | case ARIZONA_DSP1_STATUS_2: |
1886 | case ARIZONA_DSP1_STATUS_3: | 1864 | case ARIZONA_DSP1_STATUS_3: |
1865 | case ARIZONA_DSP1_SCRATCH_0: | ||
1866 | case ARIZONA_DSP1_SCRATCH_1: | ||
1867 | case ARIZONA_DSP1_SCRATCH_2: | ||
1868 | case ARIZONA_DSP1_SCRATCH_3: | ||
1887 | case ARIZONA_HEADPHONE_DETECT_2: | 1869 | case ARIZONA_HEADPHONE_DETECT_2: |
1888 | case ARIZONA_HP_DACVAL: | 1870 | case ARIZONA_HP_DACVAL: |
1889 | case ARIZONA_MIC_DETECT_3: | 1871 | case ARIZONA_MIC_DETECT_3: |
1890 | return true; | 1872 | return true; |
1891 | default: | 1873 | default: |
1892 | return false; | 1874 | if ((reg >= 0x100000 && reg < 0x106000) || |
1875 | (reg >= 0x180000 && reg < 0x180800) || | ||
1876 | (reg >= 0x190000 && reg < 0x194800) || | ||
1877 | (reg >= 0x1a8000 && reg < 0x1a9800)) | ||
1878 | return true; | ||
1879 | else | ||
1880 | return false; | ||
1893 | } | 1881 | } |
1894 | } | 1882 | } |
1895 | 1883 | ||