Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wirel...
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / sound / soc / codecs / ad1836.h
CommitLineData
7eaae41e 1/*
42f32c55
MF
2 * Audio Codec driver supporting:
3 * AD1835A, AD1836, AD1837A, AD1838A, AD1839A
7eaae41e 4 *
42f32c55 5 * Copyright 2009-2011 Analog Devices Inc.
7eaae41e 6 *
42f32c55 7 * Licensed under the GPL-2 or later.
7eaae41e
BS
8 */
9
10#ifndef __AD1836_H__
11#define __AD1836_H__
12
13#define AD1836_DAC_CTRL1 0
14#define AD1836_DAC_POWERDOWN 2
d4d80f5e 15#define AD1836_DAC_SERFMT_MASK 0xE0
7eaae41e
BS
16#define AD1836_DAC_SERFMT_PCK256 (0x4 << 5)
17#define AD1836_DAC_SERFMT_PCK128 (0x5 << 5)
18#define AD1836_DAC_WORD_LEN_MASK 0x18
8ca695f2 19#define AD1836_DAC_WORD_LEN_OFFSET 3
7eaae41e
BS
20
21#define AD1836_DAC_CTRL2 1
90bc11d1
LPC
22
23/* These macros are one-based. So AD183X_MUTE_LEFT(1) will return the mute bit
24 * for the first ADC/DAC */
25#define AD1836_MUTE_LEFT(x) (((x) * 2) - 2)
26#define AD1836_MUTE_RIGHT(x) (((x) * 2) - 1)
27
28#define AD1836_DAC_L_VOL(x) ((x) * 2)
29#define AD1836_DAC_R_VOL(x) (1 + ((x) * 2))
7eaae41e
BS
30
31#define AD1836_ADC_CTRL1 12
32#define AD1836_ADC_POWERDOWN 7
33#define AD1836_ADC_HIGHPASS_FILTER 8
34
35#define AD1836_ADC_CTRL2 13
7eaae41e 36#define AD1836_ADC_WORD_LEN_MASK 0x30
72531c94 37#define AD1836_ADC_WORD_OFFSET 4
d4d80f5e 38#define AD1836_ADC_SERFMT_MASK (7 << 6)
7eaae41e
BS
39#define AD1836_ADC_SERFMT_PCK256 (0x4 << 6)
40#define AD1836_ADC_SERFMT_PCK128 (0x5 << 6)
84549d23 41#define AD1836_ADC_AUX (0x6 << 6)
7eaae41e
BS
42
43#define AD1836_ADC_CTRL3 14
44
45#define AD1836_NUM_REGS 16
46
8ca695f2
LPC
47#define AD1836_WORD_LEN_24 0x0
48#define AD1836_WORD_LEN_20 0x1
49#define AD1836_WORD_LEN_16 0x2
50
7eaae41e 51#endif