ASoC: wm8904: fix DSP mode B configuration
[pandora-kernel.git] / sound / soc / codecs / da732x.h
1 /*
2  * da732x.h -- Dialog DA732X ALSA SoC Audio Driver Header File
3  *
4  * Copyright (C) 2012 Dialog Semiconductor GmbH
5  *
6  * Author: Michal Hajduk <Michal.Hajduk@diasemi.com>
7  *
8  * This program is free software; you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License version 2 as
10  * published by the Free Software Foundation.
11  */
12
13 #ifndef __DA732X_H_
14 #define __DA732X_H
15
16 #include <sound/soc.h>
17
18 /* General */
19 #define DA732X_U8_MASK                  0xFF
20 #define DA732X_4BYTES                   4
21 #define DA732X_3BYTES                   3
22 #define DA732X_2BYTES                   2
23 #define DA732X_1BYTE                    1
24 #define DA732X_1BYTE_SHIFT              8
25 #define DA732X_2BYTES_SHIFT             16
26 #define DA732X_3BYTES_SHIFT             24
27 #define DA732X_4BYTES_SHIFT             32
28
29 #define DA732X_DACS_DIS                 0x0
30 #define DA732X_HP_DIS                   0x0
31 #define DA732X_CLEAR_REG                0x0
32
33 /* Calibration */
34 #define DA732X_DAC_OFFSET_STEP          0x20
35 #define DA732X_OUTPUT_OFFSET_STEP       0x80
36 #define DA732X_HP_OUT_TRIM_VAL          0x0
37 #define DA732X_WAIT_FOR_STABILIZATION   1
38 #define DA732X_HPL_DAC                  0
39 #define DA732X_HPR_DAC                  1
40 #define DA732X_HP_DACS                  2
41 #define DA732X_HPL_AMP                  0
42 #define DA732X_HPR_AMP                  1
43 #define DA732X_HP_AMPS                  2
44
45 /* Clock settings */
46 #define DA732X_STARTUP_DELAY            100
47 #define DA732X_PLL_OUT_196608           196608000
48 #define DA732X_PLL_OUT_180634           180633600
49 #define DA732X_PLL_OUT_SRM              188620800
50 #define DA732X_MCLK_10MHZ               10000000
51 #define DA732X_MCLK_20MHZ               20000000
52 #define DA732X_MCLK_40MHZ               40000000
53 #define DA732X_MCLK_54MHZ               54000000
54 #define DA732X_MCLK_RET_0_10MHZ         0
55 #define DA732X_MCLK_VAL_0_10MHZ         1
56 #define DA732X_MCLK_RET_10_20MHZ        1
57 #define DA732X_MCLK_VAL_10_20MHZ        2
58 #define DA732X_MCLK_RET_20_40MHZ        2
59 #define DA732X_MCLK_VAL_20_40MHZ        4
60 #define DA732X_MCLK_RET_40_54MHZ        3
61 #define DA732X_MCLK_VAL_40_54MHZ        8
62 #define DA732X_DAI_ID1                  0
63 #define DA732X_DAI_ID2                  1
64 #define DA732X_SRCCLK_PLL               0
65 #define DA732X_SRCCLK_MCLK              1
66
67 #define DA732X_LIN_LP_VOL               0x4F
68 #define DA732X_LP_VOL                   0x40
69
70 /* Kcontrols */
71 #define DA732X_DAC_EN_MAX               2
72 #define DA732X_ADCL_MUX_MAX             2
73 #define DA732X_ADCR_MUX_MAX             3
74 #define DA732X_HPF_MODE_MAX             3
75 #define DA732X_HPF_MODE_SHIFT           4
76 #define DA732X_HPF_MUSIC_SHIFT          0
77 #define DA732X_HPF_MUSIC_MAX            4
78 #define DA732X_HPF_VOICE_SHIFT          4
79 #define DA732X_HPF_VOICE_MAX            8
80 #define DA732X_EQ_EN_MAX                1
81 #define DA732X_HPF_VOICE                1
82 #define DA732X_HPF_MUSIC                2
83 #define DA732X_HPF_DISABLED             0
84 #define DA732X_NO_INVERT                0
85 #define DA732X_INVERT                   1
86 #define DA732X_SWITCH_MAX               1
87 #define DA732X_ENABLE_CP                1
88 #define DA732X_DISABLE_CP               0
89 #define DA732X_DISABLE_ALL_CLKS         0
90 #define DA732X_RESET_ADCS               0
91
92 /* dB values */
93 #define DA732X_MIC_VOL_DB_MIN           0
94 #define DA732X_MIC_VOL_DB_INC           50
95 #define DA732X_MIC_PRE_VOL_DB_MIN       0
96 #define DA732X_MIC_PRE_VOL_DB_INC       600
97 #define DA732X_AUX_VOL_DB_MIN           -6000
98 #define DA732X_AUX_VOL_DB_INC           150
99 #define DA732X_HP_VOL_DB_MIN            -2250
100 #define DA732X_HP_VOL_DB_INC            150
101 #define DA732X_LIN2_VOL_DB_MIN          -1650
102 #define DA732X_LIN2_VOL_DB_INC          150
103 #define DA732X_LIN3_VOL_DB_MIN          -1650
104 #define DA732X_LIN3_VOL_DB_INC          150
105 #define DA732X_LIN4_VOL_DB_MIN          -2250
106 #define DA732X_LIN4_VOL_DB_INC          150
107 #define DA732X_EQ_BAND_VOL_DB_MIN       -1050
108 #define DA732X_EQ_BAND_VOL_DB_INC       150
109 #define DA732X_DAC_VOL_DB_MIN           -7725
110 #define DA732X_DAC_VOL_DB_INC           75
111 #define DA732X_ADC_VOL_DB_MIN           0
112 #define DA732X_ADC_VOL_DB_INC           -1
113 #define DA732X_EQ_OVERALL_VOL_DB_MIN    -1800
114 #define DA732X_EQ_OVERALL_VOL_DB_INC    600
115
116 #define DA732X_SOC_ENUM_DOUBLE_R(xreg, xrreg, xmax, xtext) \
117         {.reg = xreg, .reg2 = xrreg, .max = xmax, .texts = xtext}
118
119 enum da732x_sysctl {
120         DA732X_SR_8KHZ          = 0x1,
121         DA732X_SR_11_025KHZ     = 0x2,
122         DA732X_SR_12KHZ         = 0x3,
123         DA732X_SR_16KHZ         = 0x5,
124         DA732X_SR_22_05KHZ      = 0x6,
125         DA732X_SR_24KHZ         = 0x7,
126         DA732X_SR_32KHZ         = 0x9,
127         DA732X_SR_44_1KHZ       = 0xA,
128         DA732X_SR_48KHZ         = 0xB,
129         DA732X_SR_88_1KHZ       = 0xE,
130         DA732X_SR_96KHZ         = 0xF,
131 };
132
133 #endif /* __DA732X_H_ */