blob: 885d283ef03d81077d3aa68e26682ec233bdd229 [file] [log] [blame]
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301/*
2 * Copyright (c) 2013-2014, 2016 The Linux Foundation. All rights reserved.
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303 * This program is free software; you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License version 2 and
5 * only version 2 as published by the Free Software Foundation.
6 *
7 * This program is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10 * GNU General Public License for more details.
11 */
12
13#ifndef _MSM_DOLBY_COMMON_H_
14#define _MSM_DOLBY_COMMON_H_
15
16#include <sound/soc.h>
17
18
19#define DOLBY_BUNDLE_MODULE_ID 0x00010723
20#define DOLBY_VISUALIZER_MODULE_ID 0x0001072B
21
22#define DOLBY_PARAM_ID_VDHE 0x0001074D
23#define DOLBY_PARAM_ID_VSPE 0x00010750
24#define DOLBY_PARAM_ID_DSSF 0x00010753
25#define DOLBY_PARAM_ID_DVLI 0x0001073E
26#define DOLBY_PARAM_ID_DVLO 0x0001073F
27#define DOLBY_PARAM_ID_DVLE 0x0001073C
28#define DOLBY_PARAM_ID_DVMC 0x00010741
29#define DOLBY_PARAM_ID_DVME 0x00010740
30#define DOLBY_PARAM_ID_IENB 0x00010744
31#define DOLBY_PARAM_ID_IEBF 0x00010745
32#define DOLBY_PARAM_ID_IEON 0x00010743
33#define DOLBY_PARAM_ID_DEON 0x00010738
34#define DOLBY_PARAM_ID_NGON 0x00010736
35#define DOLBY_PARAM_ID_GEON 0x00010748
36#define DOLBY_PARAM_ID_GENB 0x00010749
37#define DOLBY_PARAM_ID_GEBF 0x0001074A
38#define DOLBY_PARAM_ID_AONB 0x0001075B
39#define DOLBY_PARAM_ID_AOBF 0x0001075C
40#define DOLBY_PARAM_ID_AOBG 0x0001075D
41#define DOLBY_PARAM_ID_AOON 0x00010759
42#define DOLBY_PARAM_ID_ARNB 0x0001075F
43#define DOLBY_PARAM_ID_ARBF 0x00010760
44#define DOLBY_PARAM_ID_PLB 0x00010768
45#define DOLBY_PARAM_ID_PLMD 0x00010767
46#define DOLBY_PARAM_ID_DHSB 0x0001074E
47#define DOLBY_PARAM_ID_DHRG 0x0001074F
48#define DOLBY_PARAM_ID_DSSB 0x00010751
49#define DOLBY_PARAM_ID_DSSA 0x00010752
50#define DOLBY_PARAM_ID_DVLA 0x0001073D
51#define DOLBY_PARAM_ID_IEBT 0x00010746
52#define DOLBY_PARAM_ID_IEA 0x0001076A
53#define DOLBY_PARAM_ID_DEA 0x00010739
54#define DOLBY_PARAM_ID_DED 0x0001073A
55#define DOLBY_PARAM_ID_GEBG 0x0001074B
56#define DOLBY_PARAM_ID_AOCC 0x0001075A
57#define DOLBY_PARAM_ID_ARBI 0x00010761
58#define DOLBY_PARAM_ID_ARBL 0x00010762
59#define DOLBY_PARAM_ID_ARBH 0x00010763
60#define DOLBY_PARAM_ID_AROD 0x00010764
61#define DOLBY_PARAM_ID_ARTP 0x00010765
62#define DOLBY_PARAM_ID_VMON 0x00010756
63#define DOLBY_PARAM_ID_VMB 0x00010757
64#define DOLBY_PARAM_ID_VCNB 0x00010733
65#define DOLBY_PARAM_ID_VCBF 0x00010734
66#define DOLBY_PARAM_ID_PREG 0x00010728
67#define DOLBY_PARAM_ID_VEN 0x00010732
68#define DOLBY_PARAM_ID_PSTG 0x00010729
69#define DOLBY_PARAM_ID_INIT_ENDP 0x00010727
70
71/* Not Used with Set Param kcontrol, only to query using Get Param */
72#define DOLBY_PARAM_ID_VER 0x00010726
73
74#define DOLBY_PARAM_ID_VCBG 0x00010730
75#define DOLBY_PARAM_ID_VCBE 0x00010731
76
77/* DOLBY DAP control params */
78#define DOLBY_COMMIT_ALL_TO_DSP 0x70000001
79#define DOLBY_COMMIT_TO_DSP 0x70000002
80#define DOLBY_USE_CACHE 0x70000003
81#define DOLBY_AUTO_ENDP 0x70000004
82#define DOLBY_AUTO_ENDDEP_PARAMS 0x70000005
83#define DOLBY_DAP_BYPASS 0x70000006
84
85#define DOLBY_ENABLE_CUSTOM_STEREO 0x000108c7
86
87/* DOLBY DAP offsets start */
88#define DOLBY_PARAM_VDHE_LENGTH 1
89#define DOLBY_PARAM_VDHE_OFFSET 0
90#define DOLBY_PARAM_VSPE_LENGTH 1
91#define DOLBY_PARAM_VSPE_OFFSET (DOLBY_PARAM_VDHE_OFFSET + \
92 DOLBY_PARAM_VDHE_LENGTH)
93#define DOLBY_PARAM_DSSF_LENGTH 1
94#define DOLBY_PARAM_DSSF_OFFSET (DOLBY_PARAM_VSPE_OFFSET + \
95 DOLBY_PARAM_VSPE_LENGTH)
96#define DOLBY_PARAM_DVLI_LENGTH 1
97#define DOLBY_PARAM_DVLI_OFFSET (DOLBY_PARAM_DSSF_OFFSET + \
98 DOLBY_PARAM_DSSF_LENGTH)
99#define DOLBY_PARAM_DVLO_LENGTH 1
100#define DOLBY_PARAM_DVLO_OFFSET (DOLBY_PARAM_DVLI_OFFSET + \
101 DOLBY_PARAM_DVLI_LENGTH)
102#define DOLBY_PARAM_DVLE_LENGTH 1
103#define DOLBY_PARAM_DVLE_OFFSET (DOLBY_PARAM_DVLO_OFFSET + \
104 DOLBY_PARAM_DVLO_LENGTH)
105#define DOLBY_PARAM_DVMC_LENGTH 1
106#define DOLBY_PARAM_DVMC_OFFSET (DOLBY_PARAM_DVLE_OFFSET + \
107 DOLBY_PARAM_DVLE_LENGTH)
108#define DOLBY_PARAM_DVME_LENGTH 1
109#define DOLBY_PARAM_DVME_OFFSET (DOLBY_PARAM_DVMC_OFFSET + \
110 DOLBY_PARAM_DVMC_LENGTH)
111#define DOLBY_PARAM_IENB_LENGTH 1
112#define DOLBY_PARAM_IENB_OFFSET (DOLBY_PARAM_DVME_OFFSET + \
113 DOLBY_PARAM_DVME_LENGTH)
114#define DOLBY_PARAM_IEBF_LENGTH 40
115#define DOLBY_PARAM_IEBF_OFFSET (DOLBY_PARAM_IENB_OFFSET + \
116 DOLBY_PARAM_IENB_LENGTH)
117#define DOLBY_PARAM_IEON_LENGTH 1
118#define DOLBY_PARAM_IEON_OFFSET (DOLBY_PARAM_IEBF_OFFSET + \
119 DOLBY_PARAM_IEBF_LENGTH)
120#define DOLBY_PARAM_DEON_LENGTH 1
121#define DOLBY_PARAM_DEON_OFFSET (DOLBY_PARAM_IEON_OFFSET + \
122 DOLBY_PARAM_IEON_LENGTH)
123#define DOLBY_PARAM_NGON_LENGTH 1
124#define DOLBY_PARAM_NGON_OFFSET (DOLBY_PARAM_DEON_OFFSET + \
125 DOLBY_PARAM_DEON_LENGTH)
126#define DOLBY_PARAM_GEON_LENGTH 1
127#define DOLBY_PARAM_GEON_OFFSET (DOLBY_PARAM_NGON_OFFSET + \
128 DOLBY_PARAM_NGON_LENGTH)
129#define DOLBY_PARAM_GENB_LENGTH 1
130#define DOLBY_PARAM_GENB_OFFSET (DOLBY_PARAM_GEON_OFFSET + \
131 DOLBY_PARAM_GEON_LENGTH)
132#define DOLBY_PARAM_GEBF_LENGTH 40
133#define DOLBY_PARAM_GEBF_OFFSET (DOLBY_PARAM_GENB_OFFSET + \
134 DOLBY_PARAM_GENB_LENGTH)
135#define DOLBY_PARAM_AONB_LENGTH 1
136#define DOLBY_PARAM_AONB_OFFSET (DOLBY_PARAM_GEBF_OFFSET + \
137 DOLBY_PARAM_GEBF_LENGTH)
138#define DOLBY_PARAM_AOBF_LENGTH 40
139#define DOLBY_PARAM_AOBF_OFFSET (DOLBY_PARAM_AONB_OFFSET + \
140 DOLBY_PARAM_AONB_LENGTH)
141#define DOLBY_PARAM_AOBG_LENGTH 329
142#define DOLBY_PARAM_AOBG_OFFSET (DOLBY_PARAM_AOBF_OFFSET + \
143 DOLBY_PARAM_AOBF_LENGTH)
144#define DOLBY_PARAM_AOON_LENGTH 1
145#define DOLBY_PARAM_AOON_OFFSET (DOLBY_PARAM_AOBG_OFFSET + \
146 DOLBY_PARAM_AOBG_LENGTH)
147#define DOLBY_PARAM_ARNB_LENGTH 1
148#define DOLBY_PARAM_ARNB_OFFSET (DOLBY_PARAM_AOON_OFFSET + \
149 DOLBY_PARAM_AOON_LENGTH)
150#define DOLBY_PARAM_ARBF_LENGTH 40
151#define DOLBY_PARAM_ARBF_OFFSET (DOLBY_PARAM_ARNB_OFFSET + \
152 DOLBY_PARAM_ARNB_LENGTH)
153#define DOLBY_PARAM_PLB_LENGTH 1
154#define DOLBY_PARAM_PLB_OFFSET (DOLBY_PARAM_ARBF_OFFSET + \
155 DOLBY_PARAM_ARBF_LENGTH)
156#define DOLBY_PARAM_PLMD_LENGTH 1
157#define DOLBY_PARAM_PLMD_OFFSET (DOLBY_PARAM_PLB_OFFSET + \
158 DOLBY_PARAM_PLB_LENGTH)
159#define DOLBY_PARAM_DHSB_LENGTH 1
160#define DOLBY_PARAM_DHSB_OFFSET (DOLBY_PARAM_PLMD_OFFSET + \
161 DOLBY_PARAM_PLMD_LENGTH)
162#define DOLBY_PARAM_DHRG_LENGTH 1
163#define DOLBY_PARAM_DHRG_OFFSET (DOLBY_PARAM_DHSB_OFFSET + \
164 DOLBY_PARAM_DHSB_LENGTH)
165#define DOLBY_PARAM_DSSB_LENGTH 1
166#define DOLBY_PARAM_DSSB_OFFSET (DOLBY_PARAM_DHRG_OFFSET + \
167 DOLBY_PARAM_DHRG_LENGTH)
168#define DOLBY_PARAM_DSSA_LENGTH 1
169#define DOLBY_PARAM_DSSA_OFFSET (DOLBY_PARAM_DSSB_OFFSET + \
170 DOLBY_PARAM_DSSB_LENGTH)
171#define DOLBY_PARAM_DVLA_LENGTH 1
172#define DOLBY_PARAM_DVLA_OFFSET (DOLBY_PARAM_DSSA_OFFSET + \
173 DOLBY_PARAM_DSSA_LENGTH)
174#define DOLBY_PARAM_IEBT_LENGTH 40
175#define DOLBY_PARAM_IEBT_OFFSET (DOLBY_PARAM_DVLA_OFFSET + \
176 DOLBY_PARAM_DVLA_LENGTH)
177#define DOLBY_PARAM_IEA_LENGTH 1
178#define DOLBY_PARAM_IEA_OFFSET (DOLBY_PARAM_IEBT_OFFSET + \
179 DOLBY_PARAM_IEBT_LENGTH)
180#define DOLBY_PARAM_DEA_LENGTH 1
181#define DOLBY_PARAM_DEA_OFFSET (DOLBY_PARAM_IEA_OFFSET + \
182 DOLBY_PARAM_IEA_LENGTH)
183#define DOLBY_PARAM_DED_LENGTH 1
184#define DOLBY_PARAM_DED_OFFSET (DOLBY_PARAM_DEA_OFFSET + \
185 DOLBY_PARAM_DEA_LENGTH)
186#define DOLBY_PARAM_GEBG_LENGTH 40
187#define DOLBY_PARAM_GEBG_OFFSET (DOLBY_PARAM_DED_OFFSET + \
188 DOLBY_PARAM_DED_LENGTH)
189#define DOLBY_PARAM_AOCC_LENGTH 1
190#define DOLBY_PARAM_AOCC_OFFSET (DOLBY_PARAM_GEBG_OFFSET + \
191 DOLBY_PARAM_GEBG_LENGTH)
192#define DOLBY_PARAM_ARBI_LENGTH 40
193#define DOLBY_PARAM_ARBI_OFFSET (DOLBY_PARAM_AOCC_OFFSET + \
194 DOLBY_PARAM_AOCC_LENGTH)
195#define DOLBY_PARAM_ARBL_LENGTH 40
196#define DOLBY_PARAM_ARBL_OFFSET (DOLBY_PARAM_ARBI_OFFSET + \
197 DOLBY_PARAM_ARBI_LENGTH)
198#define DOLBY_PARAM_ARBH_LENGTH 40
199#define DOLBY_PARAM_ARBH_OFFSET (DOLBY_PARAM_ARBL_OFFSET + \
200 DOLBY_PARAM_ARBL_LENGTH)
201#define DOLBY_PARAM_AROD_LENGTH 1
202#define DOLBY_PARAM_AROD_OFFSET (DOLBY_PARAM_ARBH_OFFSET + \
203 DOLBY_PARAM_ARBH_LENGTH)
204#define DOLBY_PARAM_ARTP_LENGTH 1
205#define DOLBY_PARAM_ARTP_OFFSET (DOLBY_PARAM_AROD_OFFSET + \
206 DOLBY_PARAM_AROD_LENGTH)
207#define DOLBY_PARAM_VMON_LENGTH 1
208#define DOLBY_PARAM_VMON_OFFSET (DOLBY_PARAM_ARTP_OFFSET + \
209 DOLBY_PARAM_ARTP_LENGTH)
210#define DOLBY_PARAM_VMB_LENGTH 1
211#define DOLBY_PARAM_VMB_OFFSET (DOLBY_PARAM_VMON_OFFSET + \
212 DOLBY_PARAM_VMON_LENGTH)
213#define DOLBY_PARAM_VCNB_LENGTH 1
214#define DOLBY_PARAM_VCNB_OFFSET (DOLBY_PARAM_VMB_OFFSET + \
215 DOLBY_PARAM_VMB_LENGTH)
216#define DOLBY_PARAM_VCBF_LENGTH 20
217#define DOLBY_PARAM_VCBF_OFFSET (DOLBY_PARAM_VCNB_OFFSET + \
218 DOLBY_PARAM_VCNB_LENGTH)
219#define DOLBY_PARAM_PREG_LENGTH 1
220#define DOLBY_PARAM_PREG_OFFSET (DOLBY_PARAM_VCBF_OFFSET + \
221 DOLBY_PARAM_VCBF_LENGTH)
222#define DOLBY_PARAM_VEN_LENGTH 1
223#define DOLBY_PARAM_VEN_OFFSET (DOLBY_PARAM_PREG_OFFSET + \
224 DOLBY_PARAM_PREG_LENGTH)
225#define DOLBY_PARAM_PSTG_LENGTH 1
226#define DOLBY_PARAM_PSTG_OFFSET (DOLBY_PARAM_VEN_OFFSET + \
227 DOLBY_PARAM_VEN_LENGTH)
228
229#define DOLBY_PARAM_INT_ENDP_LENGTH 1
230#define DOLBY_PARAM_PAYLOAD_SIZE 3
231#define DOLBY_MAX_LENGTH_INDIVIDUAL_PARAM 329
232
233#define TOTAL_LENGTH_DOLBY_PARAM 745
234#define DOLBY_VIS_PARAM_HEADER_SIZE 25
235#define DOLBY_PARAM_VCNB_MAX_LENGTH 40
236
237#define DOLBY_INVALID_PORT_ID -1
238
239enum {
240 DEVICE_NONE = 0x0,
241 /* output devices */
242 EARPIECE = 0x1,
243 SPEAKER = 0x2,
244 WIRED_HEADSET = 0x4,
245 WIRED_HEADPHONE = 0x8,
246 BLUETOOTH_SCO = 0x10,
247 BLUETOOTH_SCO_HEADSET = 0x20,
248 BLUETOOTH_SCO_CARKIT = 0x40,
249 BLUETOOTH_A2DP = 0x80,
250 BLUETOOTH_A2DP_HEADPHONES = 0x100,
251 BLUETOOTH_A2DP_SPEAKER = 0x200,
252 AUX_DIGITAL = 0x400,
253 ANLG_DOCK_HEADSET = 0x800,
254 DGTL_DOCK_HEADSET = 0x1000,
255 USB_ACCESSORY = 0x2000,
256 USB_DEVICE = 0x4000,
257 REMOTE_SUBMIX = 0x8000,
258 ANC_HEADSET = 0x10000,
259 ANC_HEADPHONE = 0x20000,
260 PROXY = 0x2000000,
261 FM = 0x100000,
262 FM_TX = 0x1000000,
263 DEVICE_OUT_DEFAULT = 0x40000000,
264 DEVICE_OUT_ALL = 0x403FFFFF,
265};
266#endif