aboutsummaryrefslogtreecommitdiff
path: root/drivers/misc/audio_io_dev/ste_audio_io_ab8500_reg_defs.h
blob: 334773946b7dc4a935cd9441dddb0d597abbc756 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
/*
 * Copyright (C) ST-Ericsson SA 2010
 * Author: Deepak KARDA/ deepak.karda@stericsson.com for ST-Ericsson
 * License terms: GNU General Public License (GPL) version 2.
 */


#ifndef _AUDIOIO_REG_DEFS_H_
#define _AUDIOIO_REG_DEFS_H_


 /* Registers */
#define POWER_UP_CONTROL_REG 			0x0D00
#define SOFTWARE_RESET_REG 			0x0D01
#define DIGITAL_AD_CHANNELS_ENABLE_REG 		0x0D02
#define DIGITAL_DA_CHANNELS_ENABLE_REG	 	0x0D03
#define LOW_POWER_HS_EAR_CONF_REG		0x0D04
#define LINE_IN_MIC_CONF_REG			0x0D05
#define DMIC_ENABLE_REG				0x0D06
#define ADC_DAC_ENABLE_REG			0x0D07
#define ANALOG_OUTPUT_ENABLE_REG		0x0D08
#define DIGITAL_OUTPUT_ENABLE_REG		0x0D09
#define MUTE_HS_EAR_REG				0x0D0A
#define SHORT_CIRCUIT_DISABLE_REG		0x0D0B
#define NCP_ENABLE_HS_AUTOSTART_REG		0x0D0C
#define ENVELOPE_THRESHOLD_REG			0x0D0D
#define ENVELOPE_DECAY_TIME_REG			0x0D0E
#define VIB_DRIVER_CONF_REG			0x0D0F
#define PWM_VIBNL_CONF_REG			0x0D10
#define PWM_VIBPL_CONF_REG			0x0D11
#define PWM_VIBNR_CONF_REG			0x0D12
#define PWM_VIBPR_CONF_REG			0x0D13
#define ANALOG_MIC1_GAIN_REG			0x0D14
#define ANALOG_MIC2_GAIN_REG			0x0D15
#define ANALOG_HS_GAIN_REG			0x0D16
#define ANALOG_LINE_IN_GAIN_REG			0x0D17
#define LINE_IN_TO_HSL_GAIN_REG			0x0D18
#define LINE_IN_TO_HSR_GAIN_REG			0x0D19
#define AD_FILTER_CONF_REG			0x0D1A
#define IF0_IF1_MASTER_CONF_REG			0x0D1B
#define IF0_CONF_REG				0x0D1C
#define TDM_IF_BYPASS_B_FIFO_REG		0x0D1D
#define IF1_CONF_REG				0x0D1E
#define AD_ALLOCATION_TO_SLOT0_1_REG		0x0D1F
#define AD_ALLOCATION_TO_SLOT2_3_REG		0x0D20
#define AD_ALLOCATION_TO_SLOT4_5_REG		0x0D21
#define AD_ALLOCATION_TO_SLOT6_7_REG		0x0D22
#define AD_ALLOCATION_TO_SLOT8_9_REG		0x0D23
#define AD_ALLOCATION_TO_SLOT10_11_REG		0x0D24
#define AD_ALLOCATION_TO_SLOT12_13_REG		0x0D25
#define AD_ALLOCATION_TO_SLOT14_15_REG		0x0D26
#define AD_ALLOCATION_TO_SLOT16_17_REG		0x0D27
#define AD_ALLOCATION_TO_SLOT18_19_REG		0x0D28
#define AD_ALLOCATION_TO_SLOT20_21_REG		0x0D29
#define AD_ALLOCATION_TO_SLOT22_23_REG		0x0D2A
#define AD_ALLOCATION_TO_SLOT24_25_REG		0x0D2B
#define AD_ALLOCATION_TO_SLOT26_27_REG		0x0D2C
#define AD_ALLOCATION_TO_SLOT28_29_REG		0x0D2D
#define AD_ALLOCATION_TO_SLOT30_31_REG		0x0D2E
#define AD_SLOT_0_TO_7_TRISTATE_REG		0x0D2F
#define AD_SLOT_8_TO_15_TRISTATE_REG		0x0D30
#define AD_SLOT_16_TO_23_TRISTATE_REG		0x0D31
#define AD_SLOT_24_TO_31_TRISTATE_REG		0x0D32
#define SLOT_SELECTION_TO_DA1_REG		0x0D33
#define SLOT_SELECTION_TO_DA2_REG		0x0D34
#define SLOT_SELECTION_TO_DA3_REG		0x0D35
#define SLOT_SELECTION_TO_DA4_REG		0x0D36
#define SLOT_SELECTION_TO_DA5_REG		0x0D37
#define SLOT_SELECTION_TO_DA6_REG		0x0D38
#define SLOT_SELECTION_TO_DA7_REG		0x0D39
#define SLOT_SELECTION_TO_DA8_REG		0x0D3A
#define CLASS_D_EMI_PARALLEL_CONF_REG		0x0D3B
#define CLASS_D_PATH_CONTROL_REG		0x0D3C
#define CLASS_D_DITHER_CONTROL_REG		0x0D3D
#define DMIC_DECIMATOR_FILTER_REG		0x0D3E
#define DIGITAL_MUXES_REG1			0x0D3F
#define DIGITAL_MUXES_REG2			0x0D40
#define AD1_DIGITAL_GAIN_REG			0x0D41
#define AD2_DIGITAL_GAIN_REG			0x0D42
#define AD3_DIGITAL_GAIN_REG			0x0D43
#define AD4_DIGITAL_GAIN_REG			0x0D44
#define AD5_DIGITAL_GAIN_REG			0x0D45
#define AD6_DIGITAL_GAIN_REG			0x0D46
#define DA1_DIGITAL_GAIN_REG			0x0D47
#define DA2_DIGITAL_GAIN_REG			0x0D48
#define DA3_DIGITAL_GAIN_REG			0x0D49
#define DA4_DIGITAL_GAIN_REG			0x0D4A
#define DA5_DIGITAL_GAIN_REG			0x0D4B
#define DA6_DIGITAL_GAIN_REG			0x0D4C
#define AD1_TO_HFL_DIGITAL_GAIN_REG		0x0D4D
#define AD2_TO_HFR_DIGITAL_GAIN_REG		0x0D4E
#define HSL_EAR_DIGITAL_GAIN_REG		0x0D4F
#define HSR_DIGITAL_GAIN_REG			0x0D50
#define SIDETONE_FIR1_GAIN_REG			0x0D51
#define SIDETONE_FIR2_GAIN_REG			0x0D52
#define ANC_FILTER_CONTROL_REG			0x0D53
#define ANC_WARPED_GAIN_REG			0x0D54
#define ANC_FIR_OUTPUT_GAIN_REG			0x0D55
#define ANC_IIR_OUTPUT_GAIN_REG			0x0D56
#define ANC_FIR_COEFF_MSB_REG			0x0D57
#define ANC_FIR_COEFF_LSB_REG			0x0D58
#define ANC_IIR_COEFF_MSB_REG			0x0D59
#define ANC_IIR_COEFF_LSB_REG			0x0D5A
#define ANC_WARP_DELAY_MSB_REG			0x0D5B
#define ANC_WARP_DELAY_LSB_REG			0x0D5C
#define ANC_FIR_PEAK_MSB_REG			0x0D5D
#define ANC_FIR_PEAK_LSB_REG			0x0D5E
#define ANC_IIR_PEAK_MSB_REG			0x0D5F
#define ANC_IIR_PEAK_LSB_REG			0x0D60
#define SIDETONE_FIR_ADDR_REG			0x0D61
#define SIDETONE_FIR_COEFF_MSB_REG		0x0D62
#define SIDETONE_FIR_COEFF_LSB_REG		0x0D63
#define FILTERS_CONTROL_REG			0x0D64
#define IRQ_MASK_LSB_REG			0x0D65
#define IRQ_STATUS_LSB_REG			0x0D66
#define IRQ_MASK_MSB_REG			0x0D67
#define IRQ_STATUS_MSB_REG			0x0D68
#define BURST_FIFO_INT_CONTROL_REG		0x0D69
#define BURST_FIFO_LENGTH_REG			0x0D6A
#define BURST_FIFO_CONTROL_REG			0x0D6B
#define BURST_FIFO_SWITCH_FRAME_REG		0x0D6C
#define BURST_FIFO_WAKE_UP_DELAY_REG		0x0D6D
#define BURST_FIFO_SAMPLES_REG			0x0D6E
#define REVISION_REG				0x0D6F

/* POWER_UP_CONTROL_REG Masks */
#define DEVICE_POWER_UP		  		0x80
#define ANALOG_PARTS_POWER_UP 			0x08

/* SOFTWARE_RESET_REG Masks */
#define SW_RESET				0x80

/* DIGITAL_AD_CHANNELS_ENABLE_REG Masks */
#define EN_AD1					0x80
#define EN_AD2					0x80
#define EN_AD3					0x20
#define EN_AD4					0x20
#define EN_AD5					0x08
#define EN_AD6					0x04

/* DIGITAL_DA_CHANNELS_ENABLE_REG Masks */
#define EN_DA1					0x80
#define EN_DA2					0x40
#define EN_DA3					0x20
#define EN_DA4					0x10
#define EN_DA5					0x08
#define EN_DA6					0x04

/* LOW_POWER_HS_EAR_CONF_REG Masks */
#define LOW_POWER_HS				0x80
#define HS_DAC_DRIVER_LP			0x40
#define HS_DAC_LP				0x20
#define EAR_DAC_LP				0x10

/* LINE_IN_MIC_CONF_REG Masks */
#define EN_MIC1					0x80
#define EN_MIC2					0x40
#define EN_LIN_IN_L				0x20
#define EN_LIN_IN_R				0x10
#define MUT_MIC1				0x08
#define MUT_MIC2				0x04
#define MUT_LIN_IN_L				0x02
#define MUT_LIN_IN_R				0x01

/* DMIC_ENABLE_REG Masks */
#define EN_DMIC1				0x80
#define EN_DMIC2				0x40
#define EN_DMIC3				0x20
#define EN_DMIC4				0x10
#define EN_DMIC5				0x08
#define EN_DMIC6				0x04

/* ADC_DAC_ENABLE_REG Masks */
#define SEL_MIC1B_CLR_MIC1A			0x80
#define SEL_LINR_CLR_MIC2			0x40
#define POWER_UP_HSL_DAC			0x20
#define POWER_UP_HSR_DAC			0x10
#define POWER_UP_ADC1				0x04
#define POWER_UP_ADC3				0x02
#define POWER_UP_ADC2				0x01

/* ANALOG_OUTPUT_ENABLE_REG and DIGITAL_OUTPUT_ENABLE_REG and
					MUTE_HS_EAR_REG Masks */
#define EN_EAR_MASK				0x40
#define EN_HSL_MASK				0x20
#define EN_HSR_MASK				0x10
#define EN_HFL_MASK				0x08
#define EN_HFR_MASK				0x04
#define EN_VIBL_MASK				0x02
#define EN_VIBR_MASK				0x01

/* SHORT_CIRCUIT_DISABLE_REG Masks */
#define HS_SHORT_DIS				0x20
#define HS_PULL_DOWN_EN				0x10
#define HS_OSC_EN				0x04
#define DIS_HS_FAD				0x02
#define HS_ZCD_DIS				0x01

/* NCP_ENABLE_HS_AUTOSTART_REG Masks */
#define EN_NEG_CP				0x80
#define HS_AUTO_EN				0x01

/* ANALOG_MIC1_GAIN_REG and ANALOG_MIC1_GAIN_REG Masks */
#define MIC_ANALOG_GAIN_MASK			0x1F

/*ANALOG_HS_GAIN_REG and ANALOG_LINE_IN_GAIN_REG Masks*/
#define L_ANALOG_GAIN_MASK			0xF0
#define R_ANALOG_GAIN_MASK			0x0F

/* IF0_IF1_MASTER_CONF_REG Masks */
#define EN_MASTGEN				0x80
#define BITCLK_OSR_N_64				0x02
#define BITCLK_OSR_N_128			0x04
#define BITCLK_OSR_N_256			0x06
#define EN_FSYNC_BITCLK				0x01
#define EN_FSYNC_BITCLK1			0x10

/* IF0_CONF_REG and IF1_CONF_REG Masks */
#define FSYNC_FALLING_EDGE			0x40
#define BITCLK_FALLING_EDGE			0x20
#define IF_DELAYED				0x10
#define I2S_LEFT_ALIGNED_FORMAT			0x08
#define TDM_FORMAT				0x04
#define WORD_LENGTH_32				0x03
#define WORD_LENGTH_24				0x02
#define WORD_LENGTH_20				0x01
#define WORD_LENGTH_16				0x00

/* TDM_IF_BYPASS_B_FIFO_REG Masks */
#define IF0_BFifoEn				0x01
#define IF0_MASTER				0x02

#define IF1_MASTER                      	0x20
/*
 * AD_ALLOCATION_TO_SLOT0_1_REG and AD_ALLOCATION_TO_SLOT2_3_REG and
 * AD_ALLOCATION_TO_SLOT4_5_REG and AD_ALLOCATION_TO_SLOT6_7_REG Masks
 */
#define DATA_FROM_AD_OUT1			0x00
#define DATA_FROM_AD_OUT2			0x01
#define DATA_FROM_AD_OUT3			0x02
#define DATA_FROM_AD_OUT4			0x03
#define DATA_FROM_AD_OUT5			0x04
#define DATA_FROM_AD_OUT6			0x05
#define DATA_FROM_AD_OUT7			0x06
#define DATA_FROM_AD_OUT8			0x07
#define TRISTATE				0x0C

/*
 * SLOT_SELECTION_TO_DA1_REG and SLOT_SELECTION_TO_DA2_REG and
 * SLOT_SELECTION_TO_DA3_REG and SLOT_SELECTION_TO_DA4_REG Masks
 * SLOT_SELECTION_TO_DA5_REG and SLOT_SELECTION_TO_DA6_REG  Masks
 */
#define SLOT08_FOR_DA_PATH			0x08
#define SLOT09_FOR_DA_PATH			0x09
#define SLOT10_FOR_DA_PATH			0x0A
#define SLOT11_FOR_DA_PATH			0x0B
#define SLOT12_FOR_DA_PATH			0x0C
#define SLOT13_FOR_DA_PATH			0x0D
#define SLOT14_FOR_DA_PATH			0x0E
#define SLOT15_FOR_DA_PATH			0x0F

/* DIGITAL_MUXES_REG1 Masks */
#define DA1_TO_HSL				0x80
#define DA2_TO_HSR				0x40
#define SEL_DMIC1_FOR_AD_OUT1			0x20
#define SEL_DMIC2_FOR_AD_OUT2			0x10
#define SEL_DMIC3_FOR_AD_OUT3			0x08
/*#define SEL_DMIC5_FOR_AD_OUT5			0x04*/
/*#define SEL_DMIC6_FOR_AD_OUT6			0x02*/
/*#define SEL_DMIC1_FOR_AD_OUT1			0x01*/

/*
 * AD1_DIGITAL_GAIN_REG and AD2_DIGITAL_GAIN_REG & AD3_DIGITAL_GAIN_REG Masks
 * AD4_DIGITAL_GAIN_REG and AD5_DIGITAL_GAIN_REG & AD6_DIGITAL_GAIN_REG Masks
 * DA1_DIGITAL_GAIN_REG and DA2_DIGITAL_GAIN_REG & DA3_DIGITAL_GAIN_REG Masks
 * DA4_DIGITAL_GAIN_REG and DA5_DIGITAL_GAIN_REG & DA6_DIGITAL_GAIN_REG Masks
 */
#define DIS_FADING				0x40
#define DIGITAL_GAIN_MASK			0x3F

/*
 * HSL_EAR_DIGITAL_GAIN_REG and HSR_DIGITAL_GAIN_REG Masks
 */
#define FADE_SPEED_MASK				0xC0
#define DIS_DIG_GAIN_FADING			0x10
#define HS_DIGITAL_GAIN_MASK			0x0F

/* FMRx/FMTx Masks */
#define SLOT24_FOR_DA_PATH			0x18
#define SEL_AD_OUT8_FROM_DAIN7			0x20
#define SLOT25_FOR_DA_PATH			0x19
#define SEL_AD_OUT6_FROM_DAIN8          	0x20
#define SEL_IF8_FROM_AD_OUT7            	0x60
#define SEL_IF17_FROM_AD_OUT7           	0x60
#define SEL_IF16_FROM_AD_OUT8           	0x07

#define SEL_IF6_FROM_AD_OUT5           		0x04
#define SEL_IF7_FROM_AD_OUT6           		0x50
#define SEL_IF17_FROM_AD_OUT6          		0x50
#define SEL_AD_OUT5_FROM_DAIN7         		0x20

/* Burst FIFO Control Masks */
#define WAKEUP_SIGNAL_SAMPLE_COUNT		0x1B
#define BURST_FIFO_TRANSFER_LENGTH		0xC0
#define BURST_FIFO_INF_RUNNING			0x01
#define BURST_FIFO_INF_IN_MASTER_MODE		0x02
#define PRE_BIT_CLK0_COUNT			0x1C
#define BURST_FIFO_WAKUP_DEALAY			0x70

/* AB8500 power control Masks */
#define AB8500_VER_1_0				0x10
#define AB8500_VER_1_1				0x11
#define CLK_32K_OUT2_DISABLE			0x01
#define INACTIVE_RESET_AUDIO			0x02
#define AB8500_REQ_SYS_CLK			0x08
#define ENABLE_AUDIO_CLK_TO_AUDIO_BLK		0x10
#define ENABLE_VINTCORE12_SUPPLY		0x04
#define VAMIC2_ENABLE				0x10
#define VAMIC1_ENABLE				0x08
#define VDMIC_ENABLE				0x04
#define VAUDIO_ENABLE				0x02
#define GPIO27_DIR_OUTPUT			0x04
#define GPIO29_DIR_OUTPUT			0x10
#define GPIO31_DIR_OUTPUT			0x40

#endif