wm8750reg.h revision 1.1.6.2 1 1.1.6.2 ad /* $NetBSD: wm8750reg.h,v 1.1.6.2 2007/01/12 01:01:03 ad Exp $ */
2 1.1.6.2 ad /* $OpenBSD: wm8750reg.h,v 1.2 2005/12/31 04:31:27 deraadt Exp $ */
3 1.1.6.2 ad
4 1.1.6.2 ad /*
5 1.1.6.2 ad * Copyright (c) 2005 Christopher Pascoe <c.pascoe (at) itee.uq.edu.au>
6 1.1.6.2 ad *
7 1.1.6.2 ad * Permission to use, copy, modify, and distribute this software for any
8 1.1.6.2 ad * purpose with or without fee is hereby granted, provided that the above
9 1.1.6.2 ad * copyright notice and this permission notice appear in all copies.
10 1.1.6.2 ad *
11 1.1.6.2 ad * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
12 1.1.6.2 ad * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
13 1.1.6.2 ad * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
14 1.1.6.2 ad * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
15 1.1.6.2 ad * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
16 1.1.6.2 ad * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
17 1.1.6.2 ad * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
18 1.1.6.2 ad */
19 1.1.6.2 ad
20 1.1.6.2 ad #ifndef _DEV_IC_WM8750REG_H_
21 1.1.6.2 ad #define _DEV_IC_WM8750REG_H_
22 1.1.6.2 ad
23 1.1.6.2 ad /*
24 1.1.6.2 ad * Wolfson Microelectronics' WM8750 I2C/I2S audio codec:
25 1.1.6.2 ad * - I2C register definitions. Used in the Sharp Zaurus SL-C3000.
26 1.1.6.2 ad */
27 1.1.6.2 ad
28 1.1.6.2 ad #define LINVOL_REG 0x00 /* Left Input volume */
29 1.1.6.2 ad #define LINVOL_LIVU 0x100
30 1.1.6.2 ad #define LINVOL_LINMUTE 0x80
31 1.1.6.2 ad #define LINVOL_LIZC 0x40
32 1.1.6.2 ad #define LINVOL_LINVOL_MASK 0x3F
33 1.1.6.2 ad #define LINVOL_GET_LINVOL(x) ((x) & 0x3F)
34 1.1.6.2 ad #define LINVOL_SET_LINVOL(x) (x)
35 1.1.6.2 ad
36 1.1.6.2 ad #define RINVOL_REG 0x01 /* Right Input volume */
37 1.1.6.2 ad #define RINVOL_RIVU 0x100
38 1.1.6.2 ad #define RINVOL_RINMUTE 0x80
39 1.1.6.2 ad #define RINVOL_RIZC 0x40
40 1.1.6.2 ad #define RINVOL_RINVOL_MASK 0x3F
41 1.1.6.2 ad #define RINVOL_GET_RINVOL(x) ((x) & 0x3F)
42 1.1.6.2 ad #define RINVOL_SET_RINVOL(x) (x)
43 1.1.6.2 ad
44 1.1.6.2 ad #define LOUT1VOL_REG 0x02 /* LOUT1 volume */
45 1.1.6.2 ad #define LOUT1VOL_LO1VU 0x100
46 1.1.6.2 ad #define LOUT1VOL_LO1ZC 0x80
47 1.1.6.2 ad #define LOUT1VOL_LOUT1VOL_MASK 0x7F
48 1.1.6.2 ad #define LOUT1VOL_GET_LOUT1VOL(x) ((x) & 0x7F)
49 1.1.6.2 ad #define LOUT1VOL_SET_LOUT1VOL(x) (x)
50 1.1.6.2 ad
51 1.1.6.2 ad #define ROUT1VOL_REG 0x03 /* ROUT1 volume */
52 1.1.6.2 ad #define ROUT1VOL_RO1VU 0x100
53 1.1.6.2 ad #define ROUT1VOL_RO1ZC 0x80
54 1.1.6.2 ad #define ROUT1VOL_ROUT1VOL_MASK 0x7F
55 1.1.6.2 ad #define ROUT1VOL_GET_ROUT1VOL(x) ((x) & 0x7F)
56 1.1.6.2 ad #define ROUT1VOL_SET_ROUT1VOL(x) (x)
57 1.1.6.2 ad
58 1.1.6.2 ad #define ADCDACCTL_REG 0x05 /* ADC & DAC Control */
59 1.1.6.2 ad #define ADCDACCTL_ADCDIV2 0x100
60 1.1.6.2 ad #define ADCDACCTL_DACDIV2 0x80
61 1.1.6.2 ad #define ADCDACCTL_ADCPOL_MASK 0x60
62 1.1.6.2 ad #define ADCDACCTL_GET_ADCPOL(x) (((x) >> 5) & 0x60)
63 1.1.6.2 ad #define ADCDACCTL_SET_ADCPOL(x) ((x) << 5)
64 1.1.6.2 ad #define ADCDACCTL_HPOR 0x10
65 1.1.6.2 ad #define ADCDACCTL_DACMU 0x8
66 1.1.6.2 ad #define ADCDACCTL_DEEMPH_MASK 0x6
67 1.1.6.2 ad #define ADCDACCTL_GET_DEEMPH(x) (((x) >> 1) & 0x6)
68 1.1.6.2 ad #define ADCDACCTL_SET_DEEMPH(x) ((x) << 1)
69 1.1.6.2 ad #define ADCDACCTL_ADCHPD 0x1
70 1.1.6.2 ad
71 1.1.6.2 ad #define AUDINT_REG 0x07 /* Audio Interface */
72 1.1.6.2 ad #define AUDINT_BCLKINV 0x80
73 1.1.6.2 ad #define AUDINT_MS 0x40
74 1.1.6.2 ad #define AUDINT_LRSWAP 0x20
75 1.1.6.2 ad #define AUDINT_LRP 0x10
76 1.1.6.2 ad #define AUDINT_WL_MASK 0xC
77 1.1.6.2 ad #define AUDINT_GET_WL(x) (((x) >> 2) & 0xC)
78 1.1.6.2 ad #define AUDINT_SET_WL(x) ((x) << 2)
79 1.1.6.2 ad #define AUDINT_FORMAT_MASK 0x3
80 1.1.6.2 ad #define AUDINT_GET_FORMAT(x) ((x) & 0x3)
81 1.1.6.2 ad #define AUDINT_SET_FORMAT(x) (x)
82 1.1.6.2 ad
83 1.1.6.2 ad #define SRATE_REG 0x08 /* Sample rate */
84 1.1.6.2 ad #define SRATE_BCM_MASK 0x180
85 1.1.6.2 ad #define SRATE_GET_BCM(x) (((x) >> 7) & 0x180)
86 1.1.6.2 ad #define SRATE_SET_BCM(x) ((x) << 7)
87 1.1.6.2 ad #define SRATE_CLKDIV2 0x40
88 1.1.6.2 ad #define SRATE_SR_MASK 0x3E
89 1.1.6.2 ad #define SRATE_GET_SR(x) (((x) >> 1) & 0x3E)
90 1.1.6.2 ad #define SRATE_SET_SR(x) ((x) << 1)
91 1.1.6.2 ad #define SRATE_USB 0x1
92 1.1.6.2 ad
93 1.1.6.2 ad #define LDACVOL_REG 0x0A /* Left DAC volume */
94 1.1.6.2 ad #define LDACVOL_LDVU 0x100
95 1.1.6.2 ad #define LDACVOL_LDACVOL_MASK 0xFF
96 1.1.6.2 ad #define LDACVOL_GET_LDACVOL(x) ((x) & 0xFF)
97 1.1.6.2 ad #define LDACVOL_SET_LDACVOL(x) (x)
98 1.1.6.2 ad
99 1.1.6.2 ad #define RDACVOL_REG 0x0B /* Right DAC volume */
100 1.1.6.2 ad #define RDACVOL_RDVU 0x100
101 1.1.6.2 ad #define RDACVOL_RDACVOL_MASK 0xFF
102 1.1.6.2 ad #define RDACVOL_GET_RDACVOL(x) ((x) & 0xFF)
103 1.1.6.2 ad #define RDACVOL_SET_RDACVOL(x) (x)
104 1.1.6.2 ad
105 1.1.6.2 ad #define BASSCTL_REG 0x0C /* Bass control */
106 1.1.6.2 ad #define BASSCTL_BB 0x80
107 1.1.6.2 ad #define BASSCTL_BC 0x40
108 1.1.6.2 ad #define BASSCTL_BASS_MASK 0xF
109 1.1.6.2 ad #define BASSCTL_GET_BASS(x) ((x) & 0xF)
110 1.1.6.2 ad #define BASSCTL_SET_BASS(x) (x)
111 1.1.6.2 ad
112 1.1.6.2 ad #define TREBCTL_REG 0x0D /* Treble control */
113 1.1.6.2 ad #define TREBCTL_TC 0x40
114 1.1.6.2 ad #define TREBCTL_TRBL_MASK 0xF
115 1.1.6.2 ad #define TREBCTL_GET_TRBL(x) ((x) & 0xF)
116 1.1.6.2 ad #define TREBCTL_SET_TRBL(x) (x)
117 1.1.6.2 ad
118 1.1.6.2 ad #define RESET_REG 0x0F /* Reset */
119 1.1.6.2 ad
120 1.1.6.2 ad #define C3DCTL_REG 0x10 /* 3D control */
121 1.1.6.2 ad #define C3DCTL_MODE3D 0x80
122 1.1.6.2 ad #define C3DCTL_3DUC 0x40
123 1.1.6.2 ad #define C3DCTL_3DLC 0x20
124 1.1.6.2 ad #define C3DCTL_3DDEPTH_MASK 0x1E
125 1.1.6.2 ad #define C3DCTL_GET_3DDEPTH(x) (((x) >> 1) & 0x1E)
126 1.1.6.2 ad #define C3DCTL_SET_3DDEPTH(x) ((x) << 1)
127 1.1.6.2 ad #define C3DCTL_3DEN 0x1
128 1.1.6.2 ad
129 1.1.6.2 ad #define ALC1_REG 0x11 /* ALC1 */
130 1.1.6.2 ad #define ALC1_ALCSEL_MASK 0x180
131 1.1.6.2 ad #define ALC1_GET_ALCSEL(x) (((x) >> 7) & 0x180)
132 1.1.6.2 ad #define ALC1_SET_ALCSEL(x) ((x) << 7)
133 1.1.6.2 ad #define ALC1_MAXGAIN_MASK 0x70
134 1.1.6.2 ad #define ALC1_GET_MAXGAIN(x) (((x) >> 4) & 0x70)
135 1.1.6.2 ad #define ALC1_SET_MAXGAIN(x) ((x) << 4)
136 1.1.6.2 ad #define ALC1_ALCL_MASK 0xF
137 1.1.6.2 ad #define ALC1_GET_ALCL(x) ((x) & 0xF)
138 1.1.6.2 ad #define ALC1_SET_ALCL(x) (x)
139 1.1.6.2 ad
140 1.1.6.2 ad #define ALC2_REG 0x12 /* ALC2 */
141 1.1.6.2 ad #define ALC2_ALCZC 0x80
142 1.1.6.2 ad #define ALC2_HLD_MASK 0xF
143 1.1.6.2 ad #define ALC2_GET_HLD(x) ((x) & 0xF)
144 1.1.6.2 ad #define ALC2_SET_HLD(x) (x)
145 1.1.6.2 ad
146 1.1.6.2 ad #define ALC3_REG 0x13 /* ALC3 */
147 1.1.6.2 ad #define ALC3_DCY_MASK 0xF0
148 1.1.6.2 ad #define ALC3_GET_DCY(x) (((x) >> 4) & 0xF0)
149 1.1.6.2 ad #define ALC3_SET_DCY(x) ((x) << 4)
150 1.1.6.2 ad #define ALC3_ATK_MASK 0xF
151 1.1.6.2 ad #define ALC3_GET_ATK(x) ((x) & 0xF)
152 1.1.6.2 ad #define ALC3_SET_ATK(x) (x)
153 1.1.6.2 ad
154 1.1.6.2 ad #define NOISEGATE_REG 0x14 /* Noise Gate */
155 1.1.6.2 ad #define NOISEGATE_NGTH_MASK 0xF8
156 1.1.6.2 ad #define NOISEGATE_GET_NGTH(x) (((x) >> 3) & 0xF8)
157 1.1.6.2 ad #define NOISEGATE_SET_NGTH(x) ((x) << 3)
158 1.1.6.2 ad #define NOISEGATE_NGG_MASK 0x6
159 1.1.6.2 ad #define NOISEGATE_GET_NGG(x) (((x) >> 1) & 0x6)
160 1.1.6.2 ad #define NOISEGATE_SET_NGG(x) ((x) << 1)
161 1.1.6.2 ad #define NOISEGATE_NGAT 0x1
162 1.1.6.2 ad
163 1.1.6.2 ad #define LADCVOL_REG 0x15 /* Left ADC volume */
164 1.1.6.2 ad #define LADCVOL_LAVU 0x100
165 1.1.6.2 ad #define LADCVOL_LADCVOL_MASK 0xFF
166 1.1.6.2 ad #define LADCVOL_GET_LADCVOL(x) ((x) & 0xFF)
167 1.1.6.2 ad #define LADCVOL_SET_LADCVOL(x) (x)
168 1.1.6.2 ad
169 1.1.6.2 ad #define RADCVOL_REG 0x16 /* Right ADC volume */
170 1.1.6.2 ad #define RADCVOL_RAVU 0x100
171 1.1.6.2 ad #define RADCVOL_RADCVOL_MASK 0xFF
172 1.1.6.2 ad #define RADCVOL_GET_RADCVOL(x) ((x) & 0xFF)
173 1.1.6.2 ad #define RADCVOL_SET_RADCVOL(x) (x)
174 1.1.6.2 ad
175 1.1.6.2 ad #define ADCTL1_REG 0x17 /* Additional control(1) */
176 1.1.6.2 ad #define ADCTL1_TSDEN 0x100
177 1.1.6.2 ad #define ADCTL1_VSEL_MASK 0xC0
178 1.1.6.2 ad #define ADCTL1_GET_VSEL(x) (((x) >> 6) & 0xC0)
179 1.1.6.2 ad #define ADCTL1_SET_VSEL(x) ((x) << 6)
180 1.1.6.2 ad #define ADCTL1_DMONOMIX_MASK 0x30
181 1.1.6.2 ad #define ADCTL1_GET_DMONOMIX(x) (((x) >> 4) & 0x30)
182 1.1.6.2 ad #define ADCTL1_SET_DMONOMIX(x) ((x) << 4)
183 1.1.6.2 ad #define ADCTL1_DATSEL_MASK 0xC
184 1.1.6.2 ad #define ADCTL1_GET_DATSEL(x) (((x) >> 2) & 0xC)
185 1.1.6.2 ad #define ADCTL1_SET_DATSEL(x) ((x) << 2)
186 1.1.6.2 ad #define ADCTL1_DACINV 0x2
187 1.1.6.2 ad #define ADCTL1_TOEN 0x1
188 1.1.6.2 ad
189 1.1.6.2 ad #define ADCTL2_REG 0x18 /* Additional control(2) */
190 1.1.6.2 ad #define ADCTL2_OUTSW3_MASK 0x180
191 1.1.6.2 ad #define ADCTL2_GET_OUTSW3(x) (((x) >> 7) & 0x180)
192 1.1.6.2 ad #define ADCTL2_SET_OUTSW3(x) ((x) << 7)
193 1.1.6.2 ad #define ADCTL2_HPSWEN 0x40
194 1.1.6.2 ad #define ADCTL2_HPSWPOL 0x20
195 1.1.6.2 ad #define ADCTL2_ROUT2INV 0x10
196 1.1.6.2 ad #define ADCTL2_TRI 0x08
197 1.1.6.2 ad #define ADCTL2_LRCM 0x04
198 1.1.6.2 ad #define ADCTL2_ADCOSR 0x02
199 1.1.6.2 ad #define ADCTL2_DACOSR 0x01
200 1.1.6.2 ad
201 1.1.6.2 ad #define PWRMGMT1_REG 0x19 /* Pwr Mgmt (1) */
202 1.1.6.2 ad #define PWRMGMT1_VMIDSEL_MASK 0x180
203 1.1.6.2 ad #define PWRMGMT1_GET_VMIDSEL(x) (((x) >> 7) & 0x180)
204 1.1.6.2 ad #define PWRMGMT1_SET_VMIDSEL(x) ((x) << 7)
205 1.1.6.2 ad #define PWRMGMT1_VREF 0x40
206 1.1.6.2 ad #define PWRMGMT1_AINL 0x20
207 1.1.6.2 ad #define PWRMGMT1_AINR 0x10
208 1.1.6.2 ad #define PWRMGMT1_ADCL 0x8
209 1.1.6.2 ad #define PWRMGMT1_ADCR 0x4
210 1.1.6.2 ad #define PWRMGMT1_MICB 0x2
211 1.1.6.2 ad #define PWRMGMT1_DIGENB 0x1
212 1.1.6.2 ad
213 1.1.6.2 ad #define PWRMGMT2_REG 0x1A /* Pwr Mgmt (2) */
214 1.1.6.2 ad #define PWRMGMT2_DACL 0x100
215 1.1.6.2 ad #define PWRMGMT2_DACR 0x80
216 1.1.6.2 ad #define PWRMGMT2_LOUT1 0x40
217 1.1.6.2 ad #define PWRMGMT2_ROUT1 0x20
218 1.1.6.2 ad #define PWRMGMT2_LOUT2 0x10
219 1.1.6.2 ad #define PWRMGMT2_ROUT2 0x8
220 1.1.6.2 ad #define PWRMGMT2_MONO 0x4
221 1.1.6.2 ad #define PWRMGMT2_OUT3 0x2
222 1.1.6.2 ad
223 1.1.6.2 ad #define ADCTL3_REG 0x1B /* Additional Control (3) */
224 1.1.6.2 ad #define ADCTL3_ADCLRM_MASK 0x180
225 1.1.6.2 ad #define ADCTL3_GET_ADCLRM(x) (((x) >> 7) & 0x180)
226 1.1.6.2 ad #define ADCTL3_SET_ADCLRM(x) ((x) << 7)
227 1.1.6.2 ad #define ADCTL3_VROI 0x40
228 1.1.6.2 ad #define ADCTL3_HPFLREN 0x20
229 1.1.6.2 ad
230 1.1.6.2 ad #define ADCINPMODE_REG 0x1F /* ADC input mode */
231 1.1.6.2 ad #define ADCINPMODE_DS 0x100
232 1.1.6.2 ad #define ADCINPMODE_MONOMIX_MASK 0xC0
233 1.1.6.2 ad #define ADCINPMODE_GET_MONOMIX(x) (((x) >> 6) & 0xC0)
234 1.1.6.2 ad #define ADCINPMODE_SET_MONOMIX(x) ((x) << 6)
235 1.1.6.2 ad #define ADCINPMODE_RDCM 0x20
236 1.1.6.2 ad #define ADCINPMODE_LDCM 0x10
237 1.1.6.2 ad
238 1.1.6.2 ad #define ADCLSPATH_REG 0x20 /* ADCL signal path */
239 1.1.6.2 ad #define ADCLSPATH_LINSEL_MASK 0xC0
240 1.1.6.2 ad #define ADCLSPATH_GET_LINSEL(x) (((x) >> 6) & 0xC0)
241 1.1.6.2 ad #define ADCLSPATH_SET_LINSEL(x) ((x) << 6)
242 1.1.6.2 ad #define ADCLSPATH_LMICBOOST_MASK 0x30
243 1.1.6.2 ad #define ADCLSPATH_GET_LMICBOOST(x) (((x) >> 4) & 0x30)
244 1.1.6.2 ad #define ADCLSPATH_SET_LMICBOOST(x) ((x) << 4)
245 1.1.6.2 ad
246 1.1.6.2 ad #define ADCRSPATH_REG 0x21 /* ADCR signal path */
247 1.1.6.2 ad #define ADCRSPATH_RINSEL_MASK 0xC0
248 1.1.6.2 ad #define ADCRSPATH_GET_RINSEL(x) (((x) >> 6) & 0xC0)
249 1.1.6.2 ad #define ADCRSPATH_SET_RINSEL(x) ((x) << 6)
250 1.1.6.2 ad #define ADCRSPATH_RMICBOOST_MASK 0x30
251 1.1.6.2 ad #define ADCRSPATH_GET_RMICBOOST(x) (((x) >> 4) & 0x30)
252 1.1.6.2 ad #define ADCRSPATH_SET_RMICBOOST(x) ((x) << 4)
253 1.1.6.2 ad
254 1.1.6.2 ad #define LOUTMIX1_REG 0x22 /* Left out Mix (1) */
255 1.1.6.2 ad #define LOUTMIX1_LD2LO 0x100
256 1.1.6.2 ad #define LOUTMIX1_LI2LO 0x80
257 1.1.6.2 ad #define LOUTMIX1_LI2LOVOL_MASK 0x70
258 1.1.6.2 ad #define LOUTMIX1_GET_LI2LOVOL(x) (((x) >> 4) & 0x70)
259 1.1.6.2 ad #define LOUTMIX1_SET_LI2LOVOL(x) ((x) << 4)
260 1.1.6.2 ad #define LOUTMIX1_LMIXSEL_MASK 0x7
261 1.1.6.2 ad #define LOUTMIX1_GET_LMIXSEL(x) ((x) & 0x7)
262 1.1.6.2 ad #define LOUTMIX1_SET_LMIXSEL(x) (x)
263 1.1.6.2 ad
264 1.1.6.2 ad #define LOUTMIX2_REG 0x23 /* Left out Mix (2) */
265 1.1.6.2 ad #define LOUTMIX2_RD2LO 0x100
266 1.1.6.2 ad #define LOUTMIX2_RI2LO 0x80
267 1.1.6.2 ad #define LOUTMIX2_RI2LOVOL_MASK 0x70
268 1.1.6.2 ad #define LOUTMIX2_GET_RI2LOVOL(x) (((x) >> 4) & 0x70)
269 1.1.6.2 ad #define LOUTMIX2_SET_RI2LOVOL(x) ((x) << 4)
270 1.1.6.2 ad
271 1.1.6.2 ad #define ROUTMIX1_REG 0x24 /* Right out Mix (1) */
272 1.1.6.2 ad #define ROUTMIX1_LD2RO 0x100
273 1.1.6.2 ad #define ROUTMIX1_LI2RO 0x80
274 1.1.6.2 ad #define ROUTMIX1_LI2ROVOL_MASK 0x70
275 1.1.6.2 ad #define ROUTMIX1_GET_LI2ROVOL(x) (((x) >> 4) & 0x70)
276 1.1.6.2 ad #define ROUTMIX1_SET_LI2ROVOL(x) ((x) << 4)
277 1.1.6.2 ad #define ROUTMIX1_RMIXSEL_MASK 0x7
278 1.1.6.2 ad #define ROUTMIX1_GET_RMIXSEL(x) ((x) & 0x7)
279 1.1.6.2 ad #define ROUTMIX1_SET_RMIXSEL(x) (x)
280 1.1.6.2 ad
281 1.1.6.2 ad #define ROUTMIX2_REG 0x25 /* Right out Mix (2) */
282 1.1.6.2 ad #define ROUTMIX2_RD2RO 0x100
283 1.1.6.2 ad #define ROUTMIX2_RI2RO 0x80
284 1.1.6.2 ad #define ROUTMIX2_RI2ROVOL_MASK 0x70
285 1.1.6.2 ad #define ROUTMIX2_GET_RI2ROVOL(x) (((x) >> 4) & 0x70)
286 1.1.6.2 ad #define ROUTMIX2_SET_RI2ROVOL(x) ((x) << 4)
287 1.1.6.2 ad
288 1.1.6.2 ad #define MOUTMIX1_REG 0x26 /* Mono out Mix (1) */
289 1.1.6.2 ad #define MOUTMIX1_LD2MO 0x100
290 1.1.6.2 ad #define MOUTMIX1_LI2MO 0x80
291 1.1.6.2 ad #define MOUTMIX1_LI2MOVOL_MASK 0x70
292 1.1.6.2 ad #define MOUTMIX1_GET_LI2MOVOL(x) (((x) >> 4) & 0x70)
293 1.1.6.2 ad #define MOUTMIX1_SET_LI2MOVOL(x) ((x) << 4)
294 1.1.6.2 ad
295 1.1.6.2 ad #define MOUTMIX2_REG 0x27 /* Mono out Mix (2) */
296 1.1.6.2 ad #define MOUTMIX2_RD2MO 0x100
297 1.1.6.2 ad #define MOUTMIX2_RI2MO 0x80
298 1.1.6.2 ad #define MOUTMIX2_RI2MOVOL_MASK 0x70
299 1.1.6.2 ad #define MOUTMIX2_GET_RI2MOVOL(x) (((x) >> 4) & 0x70)
300 1.1.6.2 ad #define MOUTMIX2_SET_RI2MOVOL(x) ((x) << 4)
301 1.1.6.2 ad
302 1.1.6.2 ad #define LOUT2VOL_REG 0x28 /* LOUT2 volume */
303 1.1.6.2 ad #define LOUT2VOL_LO2VU 0x100
304 1.1.6.2 ad #define LOUT2VOL_LO2ZC 0x80
305 1.1.6.2 ad #define LOUT2VOL_LOUT2VOL_MASK 0x7F
306 1.1.6.2 ad #define LOUT2VOL_GET_LOUT2VOL(x) ((x) & 0x7F)
307 1.1.6.2 ad #define LOUT2VOL_SET_LOUT2VOL(x) (x)
308 1.1.6.2 ad
309 1.1.6.2 ad #define ROUT2VOL_REG 0x29 /* ROUT2 volume */
310 1.1.6.2 ad #define ROUT2VOL_RO2VU 0x100
311 1.1.6.2 ad #define ROUT2VOL_RO2ZC 0x80
312 1.1.6.2 ad #define ROUT2VOL_ROUT2VOL_MASK 0x7F
313 1.1.6.2 ad #define ROUT2VOL_GET_ROUT2VOL(x) ((x) & 0x7F)
314 1.1.6.2 ad #define ROUT2VOL_SET_ROUT2VOL(x) (x)
315 1.1.6.2 ad
316 1.1.6.2 ad #define MOUTVOL_REG 0x2A /* MONOOUT volume */
317 1.1.6.2 ad #define MOUTVOL_MOZC 0x80
318 1.1.6.2 ad #define MOUTVOL_MOUTVOL_MASK 0x7F
319 1.1.6.2 ad #define MOUTVOL_GET_MOUTVOL(x) ((x) & 0x7F)
320 1.1.6.2 ad #define MOUTVOL_SET_MOUTVOL(x) (x)
321 1.1.6.2 ad
322 1.1.6.2 ad #endif /* _DEV_IC_WM8750REG_H_ */
323