Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
da732x.h
Go to the documentation of this file.
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 <[email protected]>
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 
131 };
132 
133 #endif /* __DA732X_H_ */