diff options
author | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-02-08 09:09:41 -0500 |
---|---|---|
committer | Mark Brown <broonie@opensource.wolfsonmicro.com> | 2011-04-11 16:33:50 -0400 |
commit | c93993aca45a223452d2a95383b655c85878c6e8 (patch) | |
tree | 444049190c24ff85c0779696b5e339cb1ab702a0 /include | |
parent | 0671fd8ef4b32200e75396cd299f0853002fc11e (diff) |
ASoC: Add WM8915 CODEC driver
The WM8915 is an ultra low power mobile CODEC designed for smartphones,
featuring a mixture of digital and analogue I/O with flexible mixing
options and advanced low power accessory detection functionality in a
compact package.
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Diffstat (limited to 'include')
-rw-r--r-- | include/sound/wm8915.h | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/include/sound/wm8915.h b/include/sound/wm8915.h new file mode 100644 index 000000000000..5817d762f6f3 --- /dev/null +++ b/include/sound/wm8915.h | |||
@@ -0,0 +1,55 @@ | |||
1 | /* | ||
2 | * linux/sound/wm8915.h -- Platform data for WM8915 | ||
3 | * | ||
4 | * Copyright 2011 Wolfson Microelectronics. PLC. | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #ifndef __LINUX_SND_WM8903_H | ||
12 | #define __LINUX_SND_WM8903_H | ||
13 | |||
14 | enum wm8915_inmode { | ||
15 | WM8915_DIFFERRENTIAL_1 = 0, /* IN1xP - IN1xN */ | ||
16 | WM8915_INVERTING = 1, /* IN1xN */ | ||
17 | WM8915_NON_INVERTING = 2, /* IN1xP */ | ||
18 | WM8915_DIFFERENTIAL_2 = 3, /* IN2xP - IN2xP */ | ||
19 | }; | ||
20 | |||
21 | /** | ||
22 | * ReTune Mobile configurations are specified with a label, sample | ||
23 | * rate and set of values to write (the enable bits will be ignored). | ||
24 | * | ||
25 | * Configurations are expected to be generated using the ReTune Mobile | ||
26 | * control panel in WISCE - see http://www.wolfsonmicro.com/wisce/ | ||
27 | */ | ||
28 | struct wm8915_retune_mobile_config { | ||
29 | const char *name; | ||
30 | int rate; | ||
31 | u16 regs[20]; | ||
32 | }; | ||
33 | |||
34 | #define WM8915_SET_DEFAULT 0x10000 | ||
35 | |||
36 | struct wm8915_pdata { | ||
37 | int irq_flags; /** Set IRQ trigger flags; default active low */ | ||
38 | |||
39 | int ldo_ena; /** GPIO for LDO1; -1 for none */ | ||
40 | |||
41 | int micdet_def; /** Default MICDET_SRC/HP1FB_SRC/MICD_BIAS */ | ||
42 | |||
43 | enum wm8915_inmode inl_mode; | ||
44 | enum wm8915_inmode inr_mode; | ||
45 | |||
46 | u32 spkmute_seq; /** Value for register 0x802 */ | ||
47 | |||
48 | int gpio_base; | ||
49 | u32 gpio_default[5]; | ||
50 | |||
51 | int num_retune_mobile_cfgs; | ||
52 | struct wm8915_retune_mobile_config *retune_mobile_cfgs; | ||
53 | }; | ||
54 | |||
55 | #endif | ||