Add the rt linux 4.1.3-rt3 as base
[kvmfornfv.git] / kernel / sound / pci / oxygen / wm8776.h
1 #ifndef WM8776_H_INCLUDED
2 #define WM8776_H_INCLUDED
3
4 /*
5  * the following register names are from:
6  * wm8776.h  --  WM8776 ASoC driver
7  *
8  * Copyright 2009 Wolfson Microelectronics plc
9  *
10  * Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
11  *
12  * This program is free software; you can redistribute it and/or modify
13  * it under the terms of the GNU General Public License version 2 as
14  * published by the Free Software Foundation.
15  */
16
17 #define WM8776_HPLVOL           0x00
18 #define WM8776_HPRVOL           0x01
19 #define WM8776_HPMASTER         0x02
20 #define WM8776_DACLVOL          0x03
21 #define WM8776_DACRVOL          0x04
22 #define WM8776_DACMASTER        0x05
23 #define WM8776_PHASESWAP        0x06
24 #define WM8776_DACCTRL1         0x07
25 #define WM8776_DACMUTE          0x08
26 #define WM8776_DACCTRL2         0x09
27 #define WM8776_DACIFCTRL        0x0a
28 #define WM8776_ADCIFCTRL        0x0b
29 #define WM8776_MSTRCTRL         0x0c
30 #define WM8776_PWRDOWN          0x0d
31 #define WM8776_ADCLVOL          0x0e
32 #define WM8776_ADCRVOL          0x0f
33 #define WM8776_ALCCTRL1         0x10
34 #define WM8776_ALCCTRL2         0x11
35 #define WM8776_ALCCTRL3         0x12
36 #define WM8776_NOISEGATE        0x13
37 #define WM8776_LIMITER          0x14
38 #define WM8776_ADCMUX           0x15
39 #define WM8776_OUTMUX           0x16
40 #define WM8776_RESET            0x17
41
42
43 /* HPLVOL/HPRVOL/HPMASTER */
44 #define WM8776_HPATT_MASK       0x07f
45 #define WM8776_HPZCEN           0x080
46 #define WM8776_UPDATE           0x100
47
48 /* DACLVOL/DACRVOL/DACMASTER */
49 #define WM8776_DATT_MASK        0x0ff
50 /*#define WM8776_UPDATE         0x100*/
51
52 /* PHASESWAP */
53 #define WM8776_PH_MASK          0x003
54
55 /* DACCTRL1 */
56 #define WM8776_DZCEN            0x001
57 #define WM8776_ATC              0x002
58 #define WM8776_IZD              0x004
59 #define WM8776_TOD              0x008
60 #define WM8776_PL_LEFT_MASK     0x030
61 #define WM8776_PL_LEFT_MUTE     0x000
62 #define WM8776_PL_LEFT_LEFT     0x010
63 #define WM8776_PL_LEFT_RIGHT    0x020
64 #define WM8776_PL_LEFT_LRMIX    0x030
65 #define WM8776_PL_RIGHT_MASK    0x0c0
66 #define WM8776_PL_RIGHT_MUTE    0x000
67 #define WM8776_PL_RIGHT_LEFT    0x040
68 #define WM8776_PL_RIGHT_RIGHT   0x080
69 #define WM8776_PL_RIGHT_LRMIX   0x0c0
70
71 /* DACMUTE */
72 #define WM8776_DMUTE            0x001
73
74 /* DACCTRL2 */
75 #define WM8776_DEEMPH           0x001
76 #define WM8776_DZFM_MASK        0x006
77 #define WM8776_DZFM_NONE        0x000
78 #define WM8776_DZFM_LR          0x002
79 #define WM8776_DZFM_BOTH        0x004
80 #define WM8776_DZFM_EITHER      0x006
81
82 /* DACIFCTRL */
83 #define WM8776_DACFMT_MASK      0x003
84 #define WM8776_DACFMT_RJUST     0x000
85 #define WM8776_DACFMT_LJUST     0x001
86 #define WM8776_DACFMT_I2S       0x002
87 #define WM8776_DACFMT_DSP       0x003
88 #define WM8776_DACLRP           0x004
89 #define WM8776_DACBCP           0x008
90 #define WM8776_DACWL_MASK       0x030
91 #define WM8776_DACWL_16         0x000
92 #define WM8776_DACWL_20         0x010
93 #define WM8776_DACWL_24         0x020
94 #define WM8776_DACWL_32         0x030
95
96 /* ADCIFCTRL */
97 #define WM8776_ADCFMT_MASK      0x003
98 #define WM8776_ADCFMT_RJUST     0x000
99 #define WM8776_ADCFMT_LJUST     0x001
100 #define WM8776_ADCFMT_I2S       0x002
101 #define WM8776_ADCFMT_DSP       0x003
102 #define WM8776_ADCLRP           0x004
103 #define WM8776_ADCBCP           0x008
104 #define WM8776_ADCWL_MASK       0x030
105 #define WM8776_ADCWL_16         0x000
106 #define WM8776_ADCWL_20         0x010
107 #define WM8776_ADCWL_24         0x020
108 #define WM8776_ADCWL_32         0x030
109 #define WM8776_ADCMCLK          0x040
110 #define WM8776_ADCHPD           0x100
111
112 /* MSTRCTRL */
113 #define WM8776_ADCRATE_MASK     0x007
114 #define WM8776_ADCRATE_256      0x002
115 #define WM8776_ADCRATE_384      0x003
116 #define WM8776_ADCRATE_512      0x004
117 #define WM8776_ADCRATE_768      0x005
118 #define WM8776_ADCOSR           0x008
119 #define WM8776_DACRATE_MASK     0x070
120 #define WM8776_DACRATE_128      0x000
121 #define WM8776_DACRATE_192      0x010
122 #define WM8776_DACRATE_256      0x020
123 #define WM8776_DACRATE_384      0x030
124 #define WM8776_DACRATE_512      0x040
125 #define WM8776_DACRATE_768      0x050
126 #define WM8776_DACMS            0x080
127 #define WM8776_ADCMS            0x100
128
129 /* PWRDOWN */
130 #define WM8776_PDWN             0x001
131 #define WM8776_ADCPD            0x002
132 #define WM8776_DACPD            0x004
133 #define WM8776_HPPD             0x008
134 #define WM8776_AINPD            0x040
135
136 /* ADCLVOL/ADCRVOL */
137 #define WM8776_AGMASK           0x0ff
138 #define WM8776_ZCA              0x100
139
140 /* ALCCTRL1 */
141 #define WM8776_LCT_MASK         0x00f
142 #define WM8776_MAXGAIN_MASK     0x070
143 #define WM8776_LCSEL_MASK       0x180
144 #define WM8776_LCSEL_LIMITER    0x000
145 #define WM8776_LCSEL_ALC_RIGHT 0x080
146 #define WM8776_LCSEL_ALC_LEFT   0x100
147 #define WM8776_LCSEL_ALC_STEREO 0x180
148
149 /* ALCCTRL2 */
150 #define WM8776_HLD_MASK         0x00f
151 #define WM8776_ALCZC            0x080
152 #define WM8776_LCEN             0x100
153
154 /* ALCCTRL3 */
155 #define WM8776_ATK_MASK         0x00f
156 #define WM8776_DCY_MASK         0x0f0
157
158 /* NOISEGATE */
159 #define WM8776_NGAT             0x001
160 #define WM8776_NGTH_MASK        0x01c
161
162 /* LIMITER */
163 #define WM8776_MAXATTEN_MASK    0x00f
164 #define WM8776_TRANWIN_MASK     0x070
165
166 /* ADCMUX */
167 #define WM8776_AMX_MASK         0x01f
168 #define WM8776_MUTERA           0x040
169 #define WM8776_MUTELA           0x080
170 #define WM8776_LRBOTH           0x100
171
172 /* OUTMUX */
173 #define WM8776_MX_DAC           0x001
174 #define WM8776_MX_AUX           0x002
175 #define WM8776_MX_BYPASS        0x004
176
177 #endif