ASoC: Define constants for WM8962 GPIO functions
[linux-2.6.git] / include / sound / wm8962.h
1 /*
2  * wm8962.h  --  WM8962 Soc Audio driver platform data
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8
9 #ifndef _WM8962_PDATA_H
10 #define _WM8962_PDATA_H
11
12 #define WM8962_MAX_GPIO 6
13
14 /* Use to set GPIO default values to zero */
15 #define WM8962_GPIO_SET 0x10000
16
17 #define WM8962_GPIO_FN_CLKOUT           0
18 #define WM8962_GPIO_FN_LOGIC            1
19 #define WM8962_GPIO_FN_SDOUT            2
20 #define WM8962_GPIO_FN_IRQ              3
21 #define WM8962_GPIO_FN_THERMAL          4
22 #define WM8962_GPIO_FN_PLL2_LOCK        6
23 #define WM8962_GPIO_FN_PLL3_LOCK        7
24 #define WM8962_GPIO_FN_FLL_LOCK         9
25 #define WM8962_GPIO_FN_DRC_ACT         10
26 #define WM8962_GPIO_FN_WSEQ_DONE       11
27 #define WM8962_GPIO_FN_ALC_NG_ACT      12
28 #define WM8962_GPIO_FN_ALC_PEAK_LIMIT  13
29 #define WM8962_GPIO_FN_ALC_SATURATION  14
30 #define WM8962_GPIO_FN_ALC_LEVEL_THR   15
31 #define WM8962_GPIO_FN_ALC_LEVEL_LOCK  16
32 #define WM8962_GPIO_FN_FIFO_ERR        17
33 #define WM8962_GPIO_FN_OPCLK           18
34 #define WM8962_GPIO_FN_DMICCLK         19
35 #define WM8962_GPIO_FN_DMICDAT         20
36 #define WM8962_GPIO_FN_MICD            21
37 #define WM8962_GPIO_FN_MICSCD          22
38
39 struct wm8962_pdata {
40         int gpio_base;
41         u32 gpio_init[WM8962_MAX_GPIO];
42
43         /* Setup for microphone detection, raw value to be written to
44          * R48(0x30) - only microphone related bits will be updated.
45          * Detection may be enabled here for use with signals brought
46          * out on the GPIOs. */
47         u32 mic_cfg;
48
49         bool irq_active_low;
50
51         bool spk_mono;   /* Speaker outputs tied together as mono */
52 };
53
54 #endif