Skip to content

Commit

Permalink
ASoC: Implement support for WM1811A jack detection
Browse files Browse the repository at this point in the history
The WM1811A features an advanced low power accessory detection subsystem
which allows the device to be maintained in a very low power state while
the system is idle without sacrificing any accessory detection features.

Implement software support for this, automatically managing the power
configuration of the device depending on the detected accessory.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Mark Brown committed Dec 1, 2011
1 parent 157a75e commit af6b6fe
Show file tree
Hide file tree
Showing 3 changed files with 264 additions and 19 deletions.
16 changes: 16 additions & 0 deletions include/linux/mfd/wm8994/registers.h
Original file line number Diff line number Diff line change
Expand Up @@ -242,6 +242,7 @@
#define WM8994_GPIO_4 0x703
#define WM8994_GPIO_5 0x704
#define WM8994_GPIO_6 0x705
#define WM1811_JACKDET_CTRL 0x705
#define WM8994_GPIO_7 0x706
#define WM8994_GPIO_8 0x707
#define WM8994_GPIO_9 0x708
Expand Down Expand Up @@ -1852,6 +1853,9 @@
/*
* R57 (0x39) - AntiPOP (2)
*/
#define WM1811_JACKDET_MODE_MASK 0x0180 /* JACKDET_MODE - [8:7] */
#define WM1811_JACKDET_MODE_SHIFT 7 /* JACKDET_MODE - [8:7] */
#define WM1811_JACKDET_MODE_WIDTH 2 /* JACKDET_MODE - [8:7] */
#define WM8994_MICB2_DISCH 0x0100 /* MICB2_DISCH */
#define WM8994_MICB2_DISCH_MASK 0x0100 /* MICB2_DISCH */
#define WM8994_MICB2_DISCH_SHIFT 8 /* MICB2_DISCH */
Expand Down Expand Up @@ -4186,6 +4190,18 @@
#define WM8994_STL_SEL_SHIFT 0 /* STL_SEL */
#define WM8994_STL_SEL_WIDTH 1 /* STL_SEL */

/*
* R1797 (0x705) - JACKDET Ctrl
*/
#define WM1811_JACKDET_DB 0x0100 /* JACKDET_DB */
#define WM1811_JACKDET_DB_MASK 0x0100 /* JACKDET_DB */
#define WM1811_JACKDET_DB_SHIFT 8 /* JACKDET_DB */
#define WM1811_JACKDET_DB_WIDTH 1 /* JACKDET_DB */
#define WM1811_JACKDET_LVL 0x0040 /* JACKDET_LVL */
#define WM1811_JACKDET_LVL_MASK 0x0040 /* JACKDET_LVL */
#define WM1811_JACKDET_LVL_SHIFT 6 /* JACKDET_LVL */
#define WM1811_JACKDET_LVL_WIDTH 1 /* JACKDET_LVL */

/*
* R1824 (0x720) - Pull Control (1)
*/
Expand Down
Loading

0 comments on commit af6b6fe

Please sign in to comment.