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/wm8994 | |
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/wm8994')
-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 */ |