diff options
| author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-11-26 10:21:07 -0500 |
|---|---|---|
| committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2010-11-27 05:32:13 -0500 |
| commit | c4431df050ff124cae7716e301cead1e8f33c575 (patch) | |
| tree | ce6f2adc59834b24ef02040a9eab6ea36b51e6de /include/linux/mfd | |
| parent | 3a42315740fa80bb4579eb25fedec9d09ff154e7 (diff) | |
ASoC: Implement support for enhanced AIF3 on WM8958
Additional audio routing options are available on the WM8958 audio
interface 3. Add support for these.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Diffstat (limited to 'include/linux/mfd')
| -rw-r--r-- | include/linux/mfd/wm8994/registers.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/include/linux/mfd/wm8994/registers.h b/include/linux/mfd/wm8994/registers.h index 967f62f54159..3eb70a4e7681 100644 --- a/include/linux/mfd/wm8994/registers.h +++ b/include/linux/mfd/wm8994/registers.h | |||
| @@ -109,6 +109,10 @@ | |||
| 109 | #define WM8994_AIF2DAC_LRCLK 0x315 | 109 | #define WM8994_AIF2DAC_LRCLK 0x315 |
| 110 | #define WM8994_AIF2DAC_DATA 0x316 | 110 | #define WM8994_AIF2DAC_DATA 0x316 |
| 111 | #define WM8994_AIF2ADC_DATA 0x317 | 111 | #define WM8994_AIF2ADC_DATA 0x317 |
| 112 | #define WM8958_AIF3_CONTROL_1 0x320 | ||
| 113 | #define WM8958_AIF3_CONTROL_2 0x321 | ||
| 114 | #define WM8958_AIF3DAC_DATA 0x322 | ||
| 115 | #define WM8958_AIF3ADC_DATA 0x323 | ||
| 112 | #define WM8994_AIF1_ADC1_LEFT_VOLUME 0x400 | 116 | #define WM8994_AIF1_ADC1_LEFT_VOLUME 0x400 |
| 113 | #define WM8994_AIF1_ADC1_RIGHT_VOLUME 0x401 | 117 | #define WM8994_AIF1_ADC1_RIGHT_VOLUME 0x401 |
| 114 | #define WM8994_AIF1_DAC1_LEFT_VOLUME 0x402 | 118 | #define WM8994_AIF1_DAC1_LEFT_VOLUME 0x402 |
| @@ -992,6 +996,12 @@ | |||
| 992 | /* | 996 | /* |
| 993 | * R6 (0x06) - Power Management (6) | 997 | * R6 (0x06) - Power Management (6) |
| 994 | */ | 998 | */ |
| 999 | #define WM8958_AIF3ADC_SRC_MASK 0x0600 /* AIF3ADC_SRC - [10:9] */ | ||
| 1000 | #define WM8958_AIF3ADC_SRC_SHIFT 9 /* AIF3ADC_SRC - [10:9] */ | ||
| 1001 | #define WM8958_AIF3ADC_SRC_WIDTH 2 /* AIF3ADC_SRC - [10:9] */ | ||
| 1002 | #define WM8958_AIF2DAC_SRC_MASK 0x0180 /* AIF2DAC_SRC - [8:7] */ | ||
| 1003 | #define WM8958_AIF2DAC_SRC_SHIFT 7 /* AIF2DAC_SRC - [8:7] */ | ||
| 1004 | #define WM8958_AIF2DAC_SRC_WIDTH 2 /* AIF2DAC_SRC - [8:7] */ | ||
| 995 | #define WM8994_AIF3_TRI 0x0020 /* AIF3_TRI */ | 1005 | #define WM8994_AIF3_TRI 0x0020 /* AIF3_TRI */ |
| 996 | #define WM8994_AIF3_TRI_MASK 0x0020 /* AIF3_TRI */ | 1006 | #define WM8994_AIF3_TRI_MASK 0x0020 /* AIF3_TRI */ |
| 997 | #define WM8994_AIF3_TRI_SHIFT 5 /* AIF3_TRI */ | 1007 | #define WM8994_AIF3_TRI_SHIFT 5 /* AIF3_TRI */ |
| @@ -2553,6 +2563,63 @@ | |||
| 2553 | #define WM8994_AIF2ADCR_DAT_INV_WIDTH 1 /* AIF2ADCR_DAT_INV */ | 2563 | #define WM8994_AIF2ADCR_DAT_INV_WIDTH 1 /* AIF2ADCR_DAT_INV */ |
| 2554 | 2564 | ||
| 2555 | /* | 2565 | /* |
| 2566 | * R800 (0x320) - AIF3 Control (1) | ||
| 2567 | */ | ||
| 2568 | #define WM8958_AIF3_LRCLK_INV 0x0080 /* AIF3_LRCLK_INV */ | ||
| 2569 | #define WM8958_AIF3_LRCLK_INV_MASK 0x0080 /* AIF3_LRCLK_INV */ | ||
| 2570 | #define WM8958_AIF3_LRCLK_INV_SHIFT 7 /* AIF3_LRCLK_INV */ | ||
| 2571 | #define WM8958_AIF3_LRCLK_INV_WIDTH 1 /* AIF3_LRCLK_INV */ | ||
| 2572 | #define WM8958_AIF3_WL_MASK 0x0060 /* AIF3_WL - [6:5] */ | ||
| 2573 | #define WM8958_AIF3_WL_SHIFT 5 /* AIF3_WL - [6:5] */ | ||
| 2574 | #define WM8958_AIF3_WL_WIDTH 2 /* AIF3_WL - [6:5] */ | ||
| 2575 | #define WM8958_AIF3_FMT_MASK 0x0018 /* AIF3_FMT - [4:3] */ | ||
| 2576 | #define WM8958_AIF3_FMT_SHIFT 3 /* AIF3_FMT - [4:3] */ | ||
| 2577 | #define WM8958_AIF3_FMT_WIDTH 2 /* AIF3_FMT - [4:3] */ | ||
| 2578 | |||
| 2579 | /* | ||
| 2580 | * R801 (0x321) - AIF3 Control (2) | ||
| 2581 | */ | ||
| 2582 | #define WM8958_AIF3DAC_BOOST_MASK 0x0C00 /* AIF3DAC_BOOST - [11:10] */ | ||
| 2583 | #define WM8958_AIF3DAC_BOOST_SHIFT 10 /* AIF3DAC_BOOST - [11:10] */ | ||
| 2584 | #define WM8958_AIF3DAC_BOOST_WIDTH 2 /* AIF3DAC_BOOST - [11:10] */ | ||
| 2585 | #define WM8958_AIF3DAC_COMP 0x0010 /* AIF3DAC_COMP */ | ||
| 2586 | #define WM8958_AIF3DAC_COMP_MASK 0x0010 /* AIF3DAC_COMP */ | ||
| 2587 | #define WM8958_AIF3DAC_COMP_SHIFT 4 /* AIF3DAC_COMP */ | ||
| 2588 | #define WM8958_AIF3DAC_COMP_WIDTH 1 /* AIF3DAC_COMP */ | ||
| 2589 | #define WM8958_AIF3DAC_COMPMODE 0x0008 /* AIF3DAC_COMPMODE */ | ||
| 2590 | #define WM8958_AIF3DAC_COMPMODE_MASK 0x0008 /* AIF3DAC_COMPMODE */ | ||
| 2591 | #define WM8958_AIF3DAC_COMPMODE_SHIFT 3 /* AIF3DAC_COMPMODE */ | ||
| 2592 | #define WM8958_AIF3DAC_COMPMODE_WIDTH 1 /* AIF3DAC_COMPMODE */ | ||
| 2593 | #define WM8958_AIF3ADC_COMP 0x0004 /* AIF3ADC_COMP */ | ||
| 2594 | #define WM8958_AIF3ADC_COMP_MASK 0x0004 /* AIF3ADC_COMP */ | ||
| 2595 | #define WM8958_AIF3ADC_COMP_SHIFT 2 /* AIF3ADC_COMP */ | ||
| 2596 | #define WM8958_AIF3ADC_COMP_WIDTH 1 /* AIF3ADC_COMP */ | ||
| 2597 | #define WM8958_AIF3ADC_COMPMODE 0x0002 /* AIF3ADC_COMPMODE */ | ||
| 2598 | #define WM8958_AIF3ADC_COMPMODE_MASK 0x0002 /* AIF3ADC_COMPMODE */ | ||
| 2599 | #define WM8958_AIF3ADC_COMPMODE_SHIFT 1 /* AIF3ADC_COMPMODE */ | ||
| 2600 | #define WM8958_AIF3ADC_COMPMODE_WIDTH 1 /* AIF3ADC_COMPMODE */ | ||
| 2601 | #define WM8958_AIF3_LOOPBACK 0x0001 /* AIF3_LOOPBACK */ | ||
| 2602 | #define WM8958_AIF3_LOOPBACK_MASK 0x0001 /* AIF3_LOOPBACK */ | ||
| 2603 | #define WM8958_AIF3_LOOPBACK_SHIFT 0 /* AIF3_LOOPBACK */ | ||
| 2604 | #define WM8958_AIF3_LOOPBACK_WIDTH 1 /* AIF3_LOOPBACK */ | ||
| 2605 | |||
| 2606 | /* | ||
| 2607 | * R802 (0x322) - AIF3DAC Data | ||
| 2608 | */ | ||
| 2609 | #define WM8958_AIF3DAC_DAT_INV 0x0001 /* AIF3DAC_DAT_INV */ | ||
| 2610 | #define WM8958_AIF3DAC_DAT_INV_MASK 0x0001 /* AIF3DAC_DAT_INV */ | ||
| 2611 | #define WM8958_AIF3DAC_DAT_INV_SHIFT 0 /* AIF3DAC_DAT_INV */ | ||
| 2612 | #define WM8958_AIF3DAC_DAT_INV_WIDTH 1 /* AIF3DAC_DAT_INV */ | ||
| 2613 | |||
| 2614 | /* | ||
| 2615 | * R803 (0x323) - AIF3ADC Data | ||
| 2616 | */ | ||
| 2617 | #define WM8958_AIF3ADC_DAT_INV 0x0001 /* AIF3ADC_DAT_INV */ | ||
| 2618 | #define WM8958_AIF3ADC_DAT_INV_MASK 0x0001 /* AIF3ADC_DAT_INV */ | ||
| 2619 | #define WM8958_AIF3ADC_DAT_INV_SHIFT 0 /* AIF3ADC_DAT_INV */ | ||
| 2620 | #define WM8958_AIF3ADC_DAT_INV_WIDTH 1 /* AIF3ADC_DAT_INV */ | ||
| 2621 | |||
| 2622 | /* | ||
| 2556 | * R1024 (0x400) - AIF1 ADC1 Left Volume | 2623 | * R1024 (0x400) - AIF1 ADC1 Left Volume |
| 2557 | */ | 2624 | */ |
| 2558 | #define WM8994_AIF1ADC1_VU 0x0100 /* AIF1ADC1_VU */ | 2625 | #define WM8994_AIF1ADC1_VU 0x0100 /* AIF1ADC1_VU */ |
