8a26453ddf6b6552cb1efe96b8718087e2875c1f
[yamaha-mc1n2-audio.git] / device / galaxys2.c
1 /*
2  * Copyright (C) 2012 Paul Kocialkowski <contact@paulk.fr>
3  *
4  * This program is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
16  */
17
18 #include <stdio.h>
19 #include <stdlib.h>
20 #include <unistd.h>
21
22 #include <sys/types.h>
23 #include <sys/stat.h>
24 #include <fcntl.h>
25
26 #define LOG_TAG "Yamaha-MC1N2-Audio"
27 #include <cutils/log.h>
28
29 #include <yamaha-mc1n2-audio.h>
30
31 struct yamaha_mc1n2_audio_params_init galaxys2_params_init = {
32         .ae_info = {
33                 .bOnOff = 0x00,
34                 .abBex = { 0x00 },
35                 .abWide = { 0x00 },
36                 .abDrc = { 0x00 },
37                 .abEq5 = { 0x00 },
38                 .abEq3 = { 0x00 },
39         },
40
41         .path_info = {
42                 .asHpOut[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
43                 .asHpOut[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
44                 .asHpOut[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
45                 .asHpOut[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
46                 .asHpOut[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
47                 .asHpOut[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
48                 .asHpOut[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
49                 .asHpOut[1].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
50                 .asHpOut[1].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
51                 .asHpOut[1].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
52                 .asHpOut[1].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
53                 .asHpOut[1].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
54                 .asHpOut[1].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
55                 .asHpOut[1].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
56
57                 .asSpOut[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
58                 .asSpOut[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
59                 .asSpOut[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
60                 .asSpOut[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
61                 .asSpOut[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
62                 .asSpOut[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
63                 .asSpOut[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
64                 .asSpOut[1].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
65                 .asSpOut[1].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
66                 .asSpOut[1].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
67                 .asSpOut[1].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
68                 .asSpOut[1].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
69                 .asSpOut[1].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
70                 .asSpOut[1].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
71
72                 .asRcOut[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
73                 .asRcOut[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
74                 .asRcOut[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
75                 .asRcOut[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
76                 .asRcOut[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
77                 .asRcOut[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
78                 .asRcOut[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
79
80                 .asLout1[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
81                 .asLout1[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
82                 .asLout1[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
83                 .asLout1[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
84                 .asLout1[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
85                 .asLout1[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
86                 .asLout1[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
87                 .asLout1[1].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
88                 .asLout1[1].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
89                 .asLout1[1].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
90                 .asLout1[1].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
91                 .asLout1[1].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
92                 .asLout1[1].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
93                 .asLout1[1].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
94
95                 .asLout2[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
96                 .asLout2[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
97                 .asLout2[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
98                 .asLout2[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
99                 .asLout2[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
100                 .asLout2[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
101                 .asLout2[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
102                 .asLout2[1].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
103                 .asLout2[1].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
104                 .asLout2[1].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
105                 .asLout2[1].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
106                 .asLout2[1].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
107                 .asLout2[1].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
108                 .asLout2[1].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
109
110                 .asPeak[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
111                 .asPeak[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
112                 .asPeak[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
113                 .asPeak[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
114                 .asPeak[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
115                 .asPeak[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
116                 .asPeak[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
117
118                 .asDit0[0].abSrcOnOff = { 0x00 },
119
120                 .asDit1[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
121                 .asDit1[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
122                 .asDit1[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
123                 .asDit1[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
124                 .asDit1[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
125                 .asDit1[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
126                 .asDit1[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
127
128                 .asDit2[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
129                 .asDit2[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
130                 .asDit2[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
131                 .asDit2[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
132                 .asDit2[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
133                 .asDit2[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
134                 .asDit2[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
135
136                 .asDac[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
137                 .asDac[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
138                 .asDac[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
139                 .asDac[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
140                 .asDac[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
141                 .asDac[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
142                 .asDac[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
143                 .asDac[1].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
144                 .asDac[1].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
145                 .asDac[1].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
146                 .asDac[1].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
147                 .asDac[1].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
148                 .asDac[1].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
149                 .asDac[1].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
150
151                 .asAe[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
152                 .asAe[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
153                 .asAe[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
154                 .asAe[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
155                 .asAe[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
156                 .asAe[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
157                 .asAe[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
158
159                 .asCdsp[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
160                 .asCdsp[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
161                 .asCdsp[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
162                 .asCdsp[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
163                 .asCdsp[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
164                 .asCdsp[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
165                 .asCdsp[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
166                 .asCdsp[1].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
167                 .asCdsp[1].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
168                 .asCdsp[1].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
169                 .asCdsp[1].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
170                 .asCdsp[1].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
171                 .asCdsp[1].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
172                 .asCdsp[1].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
173                 .asCdsp[2].abSrcOnOff = { 0x00 },
174                 .asCdsp[3].abSrcOnOff = { 0x00 },
175
176                 .asAdc0[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
177                 .asAdc0[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
178                 .asAdc0[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
179                 .asAdc0[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
180                 .asAdc0[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
181                 .asAdc0[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
182                 .asAdc0[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
183                 .asAdc0[1].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
184                 .asAdc0[1].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
185                 .asAdc0[1].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
186                 .asAdc0[1].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
187                 .asAdc0[1].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
188                 .asAdc0[1].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
189                 .asAdc0[1].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
190
191                 .asAdc1[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
192                 .asAdc1[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
193                 .asAdc1[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
194                 .asAdc1[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
195                 .asAdc1[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
196                 .asAdc1[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
197                 .asAdc1[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
198
199                 .asMix[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
200                 .asMix[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
201                 .asMix[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
202                 .asMix[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
203                 .asMix[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
204                 .asMix[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
205                 .asMix[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
206
207                 .asBias[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
208                 .asBias[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
209                 .asBias[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
210                 .asBias[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
211                 .asBias[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_OFF | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
212                 .asBias[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
213                 .asBias[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
214         },
215
216         .dac_info = {
217                 .bMasterSwap = MCDRV_DSWAP_OFF,
218                 .bVoiceSwap = MCDRV_DSWAP_OFF,
219                 .bDcCut = MCDRV_DCCUT_ON,
220         },
221
222         .adc_info = {
223                 .bAgcAdjust = MCDRV_AGCADJ_0,
224                 .bAgcOn = MCDRV_AGC_OFF,
225                 .bMono = MCDRV_ADC_STEREO,
226         },
227
228         .sp_info = {
229                 .bSwap = MCDRV_SPSWAP_OFF,
230         },
231
232         .pdm_info = {
233                 .bClk = MCDRV_PDM_CLK_64,
234                 .bAgcAdjust = MCDRV_AGCADJ_0,
235                 .bAgcOn = MCDRV_AGC_OFF,
236                 .bPdmEdge = MCDRV_PDMEDGE_LH,
237                 .bPdmWait = MCDRV_PDMWAIT_10,
238                 .bPdmSel = MCDRV_PDMSEL_L1R2,
239                 .bMono = MCDRV_PDM_STEREO,
240         },
241
242         .dng_info = {
243                 .abOnOff[MCDRV_DNG_ITEM_HP] = MCDRV_DNG_ON,
244                 .abThreshold[MCDRV_DNG_ITEM_HP] = MCDRV_DNG_THRES_60,
245                 .abHold[MCDRV_DNG_ITEM_HP] = MCDRV_DNG_HOLD_500,
246                 .abAttack[MCDRV_DNG_ITEM_HP] = MCDRV_DNG_ATTACK_100,
247                 .abRelease[MCDRV_DNG_ITEM_HP] = MCDRV_DNG_RELEASE_940,
248                 .abTarget[MCDRV_DNG_ITEM_HP] = MCDRV_DNG_TARGET_MUTE,
249
250                 .abOnOff[MCDRV_DNG_ITEM_SP] = MCDRV_DNG_ON,
251                 .abThreshold[MCDRV_DNG_ITEM_SP] = MCDRV_DNG_THRES_60,
252                 .abHold[MCDRV_DNG_ITEM_SP] = MCDRV_DNG_HOLD_500,
253                 .abAttack[MCDRV_DNG_ITEM_SP] = MCDRV_DNG_ATTACK_100,
254                 .abRelease[MCDRV_DNG_ITEM_SP] = MCDRV_DNG_RELEASE_940,
255                 .abTarget[MCDRV_DNG_ITEM_SP] = MCDRV_DNG_TARGET_MUTE,
256
257                 .abOnOff[MCDRV_DNG_ITEM_RC] = MCDRV_DNG_ON,
258                 .abThreshold[MCDRV_DNG_ITEM_RC] = MCDRV_DNG_THRES_60,
259                 .abHold[MCDRV_DNG_ITEM_RC] = MCDRV_DNG_HOLD_500,
260                 .abAttack[MCDRV_DNG_ITEM_RC] = MCDRV_DNG_ATTACK_100,
261                 .abRelease[MCDRV_DNG_ITEM_RC] = MCDRV_DNG_RELEASE_940,
262                 .abTarget[MCDRV_DNG_ITEM_RC] = MCDRV_DNG_TARGET_MUTE,
263         },
264
265         .syseq_info = {
266                 .bOnOff = MCDRV_SYSEQ_OFF,
267                 .abParam = {
268                         0x10, 0xc4, 0x50, 0x12, 0xc4,
269                         0x40, 0x02, 0xa9, 0x60, 0xed,
270                         0x3b, 0xc0, 0xfc, 0x92, 0x40
271                 },
272         },
273 };
274
275 struct yamaha_mc1n2_audio_params_route galaxys2_params_routes[] = {
276         {
277                 .device = AUDIO_DEVICE_OUT_EARPIECE,
278                 .direction = YAMAHA_MC1N2_AUDIO_DIRECTION_OUTPUT,
279
280                 .ae_info = {
281                         .bOnOff = 0,
282                         .abBex = { 0 },
283                         .abWide = { 0 },
284                         .abDrc = { 0 },
285                         .abEq5 = { 0 },
286                         .abEq3 = { 0 },
287                 },
288
289                 .path_info.asHpOut[0].abSrcOnOff = { 0 },
290                 .path_info.asHpOut[1].abSrcOnOff = { 0 },
291                 .path_info.asSpOut[0].abSrcOnOff = { 0 },
292                 .path_info.asSpOut[1].abSrcOnOff = { 0 },
293                 .path_info.asRcOut[0].abSrcOnOff = { 0 },
294                 .path_info.asLout1[0].abSrcOnOff = { 0 },
295                 .path_info.asLout1[1].abSrcOnOff = { 0 },
296                 .path_info.asLout2[0].abSrcOnOff = { 0 },
297                 .path_info.asLout2[1].abSrcOnOff = { 0 },
298                 .path_info.asPeak[0].abSrcOnOff = { 0 },
299                 .path_info.asDit0[0].abSrcOnOff = { 0 },
300                 .path_info.asDit1[0].abSrcOnOff = { 0 },
301                 .path_info.asDit2[0].abSrcOnOff = { 0 },
302                 .path_info.asDac[0].abSrcOnOff = { 0 },
303                 .path_info.asDac[1].abSrcOnOff = { 0 },
304                 .path_info.asAe[0].abSrcOnOff = { 0 },
305                 .path_info.asCdsp[0].abSrcOnOff = { 0 },
306                 .path_info.asCdsp[1].abSrcOnOff = { 0 },
307                 .path_info.asCdsp[2].abSrcOnOff = { 0 },
308                 .path_info.asCdsp[3].abSrcOnOff = { 0 },
309                 .path_info.asAdc0[0].abSrcOnOff = { 0 },
310                 .path_info.asAdc0[1].abSrcOnOff = { 0 },
311                 .path_info.asAdc1[0].abSrcOnOff = { 0 },
312                 .path_info.asMix[0].abSrcOnOff = { 0 },
313                 .path_info.asBias[0].abSrcOnOff = { 0 },
314
315                 .path_info.asRcOut[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_R_ON | MCDRV_SRC5_DAC_L_ON,
316                 .path_info.asDac[0].abSrcOnOff[6] = MCDRV_SRC6_MIX_ON,
317                 .path_info.asMix[0].abSrcOnOff[3] = MCDRV_SRC3_DIR0_ON,
318
319                 .dac_info = {
320                         .bMasterSwap = 0,
321                         .bVoiceSwap = 0,
322                         .bDcCut = 0,
323                 },
324         },
325         {
326                 .device = AUDIO_DEVICE_OUT_SPEAKER,
327                 .direction = YAMAHA_MC1N2_AUDIO_DIRECTION_OUTPUT,
328
329                 .ae_info = {
330                         .bOnOff = 0,
331                         .abBex = { 0 },
332                         .abWide = { 0 },
333                         .abDrc = { 0 },
334                         .abEq5 = { 0 },
335                         .abEq3 = { 0 },
336                 },
337
338                 .path_info.asHpOut[0].abSrcOnOff = { 0 },
339                 .path_info.asHpOut[1].abSrcOnOff = { 0 },
340                 .path_info.asSpOut[0].abSrcOnOff = { 0 },
341                 .path_info.asSpOut[1].abSrcOnOff = { 0 },
342                 .path_info.asRcOut[0].abSrcOnOff = { 0 },
343                 .path_info.asLout1[0].abSrcOnOff = { 0 },
344                 .path_info.asLout1[1].abSrcOnOff = { 0 },
345                 .path_info.asLout2[0].abSrcOnOff = { 0 },
346                 .path_info.asLout2[1].abSrcOnOff = { 0 },
347                 .path_info.asPeak[0].abSrcOnOff = { 0 },
348                 .path_info.asDit0[0].abSrcOnOff = { 0 },
349                 .path_info.asDit1[0].abSrcOnOff = { 0 },
350                 .path_info.asDit2[0].abSrcOnOff = { 0 },
351                 .path_info.asDac[0].abSrcOnOff = { 0 },
352                 .path_info.asDac[1].abSrcOnOff = { 0 },
353                 .path_info.asAe[0].abSrcOnOff = { 0 },
354                 .path_info.asCdsp[0].abSrcOnOff = { 0 },
355                 .path_info.asCdsp[1].abSrcOnOff = { 0 },
356                 .path_info.asCdsp[2].abSrcOnOff = { 0 },
357                 .path_info.asCdsp[3].abSrcOnOff = { 0 },
358                 .path_info.asAdc0[0].abSrcOnOff = { 0 },
359                 .path_info.asAdc0[1].abSrcOnOff = { 0 },
360                 .path_info.asAdc1[0].abSrcOnOff = { 0 },
361                 .path_info.asMix[0].abSrcOnOff = { 0 },
362                 .path_info.asBias[0].abSrcOnOff = { 0 },
363
364                 .path_info.asSpOut[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_ON,
365                 .path_info.asDac[0].abSrcOnOff[6] = MCDRV_SRC6_MIX_ON,
366                 .path_info.asMix[0].abSrcOnOff[3] = MCDRV_SRC3_DIR0_ON,
367
368                 .dac_info = {
369                         .bMasterSwap = 0,
370                         .bVoiceSwap = 0,
371                         .bDcCut = 0,
372                 },
373         },
374         {
375                 .device = AUDIO_DEVICE_OUT_WIRED_HEADPHONE,
376                 .direction = YAMAHA_MC1N2_AUDIO_DIRECTION_OUTPUT,
377
378                 .ae_info = {
379                         .bOnOff = 0x00,
380                         .abBex = { 0x00 },
381                         .abWide = { 0x00 },
382                         .abDrc = { 0x00 },
383                         .abEq5 = { 0x00 },
384                         .abEq3 = { 0x00 },
385                 },
386
387                 .path_info.asHpOut[0].abSrcOnOff = { 0 },
388                 .path_info.asHpOut[1].abSrcOnOff = { 0 },
389                 .path_info.asSpOut[0].abSrcOnOff = { 0 },
390                 .path_info.asSpOut[1].abSrcOnOff = { 0 },
391                 .path_info.asRcOut[0].abSrcOnOff = { 0 },
392                 .path_info.asLout1[0].abSrcOnOff = { 0 },
393                 .path_info.asLout1[1].abSrcOnOff = { 0 },
394                 .path_info.asLout2[0].abSrcOnOff = { 0 },
395                 .path_info.asLout2[1].abSrcOnOff = { 0 },
396                 .path_info.asPeak[0].abSrcOnOff = { 0 },
397                 .path_info.asDit0[0].abSrcOnOff = { 0 },
398                 .path_info.asDit1[0].abSrcOnOff = { 0 },
399                 .path_info.asDit2[0].abSrcOnOff = { 0 },
400                 .path_info.asDac[0].abSrcOnOff = { 0 },
401                 .path_info.asDac[1].abSrcOnOff = { 0 },
402                 .path_info.asAe[0].abSrcOnOff = { 0 },
403                 .path_info.asCdsp[0].abSrcOnOff = { 0 },
404                 .path_info.asCdsp[1].abSrcOnOff = { 0 },
405                 .path_info.asCdsp[2].abSrcOnOff = { 0 },
406                 .path_info.asCdsp[3].abSrcOnOff = { 0 },
407                 .path_info.asAdc0[0].abSrcOnOff = { 0 },
408                 .path_info.asAdc0[1].abSrcOnOff = { 0 },
409                 .path_info.asAdc1[0].abSrcOnOff = { 0 },
410                 .path_info.asMix[0].abSrcOnOff = { 0 },
411                 .path_info.asBias[0].abSrcOnOff = { 0 },
412
413                 .path_info.asHpOut[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_L_ON,
414                 .path_info.asHpOut[1].abSrcOnOff[5] = MCDRV_SRC5_DAC_R_ON,
415                 .path_info.asDac[0].abSrcOnOff[6] = MCDRV_SRC6_MIX_ON,
416                 .path_info.asMix[0].abSrcOnOff[3] = MCDRV_SRC3_DIR0_ON,
417
418                 .dac_info = {
419                         .bMasterSwap = 0,
420                         .bVoiceSwap = 0,
421                         .bDcCut = 0,
422                 },
423         },
424         {
425                 .device = AUDIO_DEVICE_OUT_WIRED_HEADSET,
426                 .direction = YAMAHA_MC1N2_AUDIO_DIRECTION_OUTPUT,
427
428                 .ae_info = {
429                         .bOnOff = 0x00,
430                         .abBex = { 0x00 },
431                         .abWide = { 0x00 },
432                         .abDrc = { 0x00 },
433                         .abEq5 = { 0x00 },
434                         .abEq3 = { 0x00 },
435                 },
436
437                 .path_info.asHpOut[0].abSrcOnOff = { 0 },
438                 .path_info.asHpOut[1].abSrcOnOff = { 0 },
439                 .path_info.asSpOut[0].abSrcOnOff = { 0 },
440                 .path_info.asSpOut[1].abSrcOnOff = { 0 },
441                 .path_info.asRcOut[0].abSrcOnOff = { 0 },
442                 .path_info.asLout1[0].abSrcOnOff = { 0 },
443                 .path_info.asLout1[1].abSrcOnOff = { 0 },
444                 .path_info.asLout2[0].abSrcOnOff = { 0 },
445                 .path_info.asLout2[1].abSrcOnOff = { 0 },
446                 .path_info.asPeak[0].abSrcOnOff = { 0 },
447                 .path_info.asDit0[0].abSrcOnOff = { 0 },
448                 .path_info.asDit1[0].abSrcOnOff = { 0 },
449                 .path_info.asDit2[0].abSrcOnOff = { 0 },
450                 .path_info.asDac[0].abSrcOnOff = { 0 },
451                 .path_info.asDac[1].abSrcOnOff = { 0 },
452                 .path_info.asAe[0].abSrcOnOff = { 0 },
453                 .path_info.asCdsp[0].abSrcOnOff = { 0 },
454                 .path_info.asCdsp[1].abSrcOnOff = { 0 },
455                 .path_info.asCdsp[2].abSrcOnOff = { 0 },
456                 .path_info.asCdsp[3].abSrcOnOff = { 0 },
457                 .path_info.asAdc0[0].abSrcOnOff = { 0 },
458                 .path_info.asAdc0[1].abSrcOnOff = { 0 },
459                 .path_info.asAdc1[0].abSrcOnOff = { 0 },
460                 .path_info.asMix[0].abSrcOnOff = { 0 },
461                 .path_info.asBias[0].abSrcOnOff = { 0 },
462
463                 .path_info.asHpOut[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_L_ON,
464                 .path_info.asHpOut[1].abSrcOnOff[5] = MCDRV_SRC5_DAC_R_ON,
465                 .path_info.asDac[0].abSrcOnOff[6] = MCDRV_SRC6_MIX_ON,
466                 .path_info.asMix[0].abSrcOnOff[3] = MCDRV_SRC3_DIR0_ON,
467
468                 .dac_info = {
469                         .bMasterSwap = 0,
470                         .bVoiceSwap = 0,
471                         .bDcCut = 0,
472                 },
473         },
474         {
475                 .device = AUDIO_DEVICE_IN_BUILTIN_MIC,
476                 .direction = YAMAHA_MC1N2_AUDIO_DIRECTION_INPUT,
477
478                 .ae_info = {
479                         .bOnOff = 0x00,
480                         .abBex = { 0x00 },
481                         .abWide = { 0x00 },
482                         .abDrc = { 0x00 },
483                         .abEq5 = { 0x00 },
484                         .abEq3 = { 0x00 },
485                 },
486
487                 .path_info.asHpOut[0].abSrcOnOff = { 0 },
488                 .path_info.asHpOut[1].abSrcOnOff = { 0 },
489                 .path_info.asSpOut[0].abSrcOnOff = { 0 },
490                 .path_info.asSpOut[1].abSrcOnOff = { 0 },
491                 .path_info.asRcOut[0].abSrcOnOff = { 0 },
492                 .path_info.asLout1[0].abSrcOnOff = { 0 },
493                 .path_info.asLout1[1].abSrcOnOff = { 0 },
494                 .path_info.asLout2[0].abSrcOnOff = { 0 },
495                 .path_info.asLout2[1].abSrcOnOff = { 0 },
496                 .path_info.asPeak[0].abSrcOnOff = { 0 },
497                 .path_info.asDit0[0].abSrcOnOff = { 0 },
498                 .path_info.asDit1[0].abSrcOnOff = { 0 },
499                 .path_info.asDit2[0].abSrcOnOff = { 0 },
500                 .path_info.asDac[0].abSrcOnOff = { 0 },
501                 .path_info.asDac[1].abSrcOnOff = { 0 },
502                 .path_info.asAe[0].abSrcOnOff = { 0 },
503                 .path_info.asCdsp[0].abSrcOnOff = { 0 },
504                 .path_info.asCdsp[1].abSrcOnOff = { 0 },
505                 .path_info.asCdsp[2].abSrcOnOff = { 0 },
506                 .path_info.asCdsp[3].abSrcOnOff = { 0 },
507                 .path_info.asAdc0[0].abSrcOnOff = { 0 },
508                 .path_info.asAdc0[1].abSrcOnOff = { 0 },
509                 .path_info.asAdc1[0].abSrcOnOff = { 0 },
510                 .path_info.asMix[0].abSrcOnOff = { 0 },
511                 .path_info.asBias[0].abSrcOnOff = { 0 },
512
513                 .path_info.asDit0[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
514                 .path_info.asDit0[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
515                 .path_info.asDit0[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
516                 .path_info.asDit0[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
517                 .path_info.asDit0[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_ON | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
518                 .path_info.asDit0[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
519                 .path_info.asDit0[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
520                 .path_info.asAdc0[0].abSrcOnOff[0] = MCDRV_SRC0_MIC1_ON,
521                 .path_info.asAdc0[1].abSrcOnOff[0] = MCDRV_SRC0_MIC1_ON,
522
523                 .dac_info = {
524                         .bMasterSwap = 0,
525                         .bVoiceSwap = 0,
526                         .bDcCut = 0,
527                 },
528         },
529         {
530                 .device = AUDIO_DEVICE_IN_WIRED_HEADSET,
531                 .direction = YAMAHA_MC1N2_AUDIO_DIRECTION_INPUT,
532
533                 .ae_info = {
534                         .bOnOff = 0x00,
535                         .abBex = { 0x00 },
536                         .abWide = { 0x00 },
537                         .abDrc = { 0x00 },
538                         .abEq5 = { 0x00 },
539                         .abEq3 = { 0x00 },
540                 },
541
542                 .path_info.asHpOut[0].abSrcOnOff = { 0 },
543                 .path_info.asHpOut[1].abSrcOnOff = { 0 },
544                 .path_info.asSpOut[0].abSrcOnOff = { 0 },
545                 .path_info.asSpOut[1].abSrcOnOff = { 0 },
546                 .path_info.asRcOut[0].abSrcOnOff = { 0 },
547                 .path_info.asLout1[0].abSrcOnOff = { 0 },
548                 .path_info.asLout1[1].abSrcOnOff = { 0 },
549                 .path_info.asLout2[0].abSrcOnOff = { 0 },
550                 .path_info.asLout2[1].abSrcOnOff = { 0 },
551                 .path_info.asPeak[0].abSrcOnOff = { 0 },
552                 .path_info.asDit0[0].abSrcOnOff = { 0 },
553                 .path_info.asDit1[0].abSrcOnOff = { 0 },
554                 .path_info.asDit2[0].abSrcOnOff = { 0 },
555                 .path_info.asDac[0].abSrcOnOff = { 0 },
556                 .path_info.asDac[1].abSrcOnOff = { 0 },
557                 .path_info.asAe[0].abSrcOnOff = { 0 },
558                 .path_info.asCdsp[0].abSrcOnOff = { 0 },
559                 .path_info.asCdsp[1].abSrcOnOff = { 0 },
560                 .path_info.asCdsp[2].abSrcOnOff = { 0 },
561                 .path_info.asCdsp[3].abSrcOnOff = { 0 },
562                 .path_info.asAdc0[0].abSrcOnOff = { 0 },
563                 .path_info.asAdc0[1].abSrcOnOff = { 0 },
564                 .path_info.asAdc1[0].abSrcOnOff = { 0 },
565                 .path_info.asMix[0].abSrcOnOff = { 0 },
566                 .path_info.asBias[0].abSrcOnOff = { 0 },
567
568                 .path_info.asDit0[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_OFF | MCDRV_SRC0_MIC2_OFF | MCDRV_SRC0_MIC1_OFF,
569                 .path_info.asDit0[0].abSrcOnOff[1] = MCDRV_SRC1_LINE1_M_OFF | MCDRV_SRC1_LINE1_R_OFF | MCDRV_SRC1_LINE1_L_OFF,
570                 .path_info.asDit0[0].abSrcOnOff[2] = MCDRV_SRC2_LINE2_M_OFF | MCDRV_SRC2_LINE2_R_OFF | MCDRV_SRC2_LINE2_L_OFF,
571                 .path_info.asDit0[0].abSrcOnOff[3] = MCDRV_SRC3_DIR2_DIRECT_OFF | MCDRV_SRC3_DIR2_OFF | MCDRV_SRC3_DIR1_OFF | MCDRV_SRC3_DIR0_OFF,
572                 .path_info.asDit0[0].abSrcOnOff[4] = MCDRV_SRC4_ADC1_OFF | MCDRV_SRC4_ADC0_ON | MCDRV_SRC4_PDM_OFF | MCDRV_SRC4_DTMF_OFF,
573                 .path_info.asDit0[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_OFF | MCDRV_SRC5_DAC_R_OFF | MCDRV_SRC5_DAC_L_OFF,
574                 .path_info.asDit0[0].abSrcOnOff[6] = MCDRV_SRC6_CDSP_DIRECT_OFF | MCDRV_SRC6_CDSP_OFF | MCDRV_SRC6_AE_OFF | MCDRV_SRC6_MIX_OFF,
575                 .path_info.asAdc0[0].abSrcOnOff[0] = MCDRV_SRC0_MIC2_ON,
576                 .path_info.asAdc0[1].abSrcOnOff[0] = MCDRV_SRC0_MIC2_ON,
577
578                 .dac_info = {
579                         .bMasterSwap = 0,
580                         .bVoiceSwap = 0,
581                         .bDcCut = 0,
582                 },
583         },
584         {
585                 .device = AUDIO_DEVICE_OUT_EARPIECE,
586                 .direction = YAMAHA_MC1N2_AUDIO_DIRECTION_MODEM,
587
588                 .ae_info = {
589                         .bOnOff = 0,
590                         .abBex = { 0 },
591                         .abWide = { 0 },
592                         .abDrc = { 0 },
593                         .abEq5 = { 0 },
594                         .abEq3 = { 0 },
595                 },
596
597                 .path_info.asHpOut[0].abSrcOnOff = { 0 },
598                 .path_info.asHpOut[1].abSrcOnOff = { 0 },
599                 .path_info.asSpOut[0].abSrcOnOff = { 0 },
600                 .path_info.asSpOut[1].abSrcOnOff = { 0 },
601                 .path_info.asRcOut[0].abSrcOnOff = { 0 },
602                 .path_info.asLout1[0].abSrcOnOff = { 0 },
603                 .path_info.asLout1[1].abSrcOnOff = { 0 },
604                 .path_info.asLout2[0].abSrcOnOff = { 0 },
605                 .path_info.asLout2[1].abSrcOnOff = { 0 },
606                 .path_info.asPeak[0].abSrcOnOff = { 0 },
607                 .path_info.asDit0[0].abSrcOnOff = { 0 },
608                 .path_info.asDit1[0].abSrcOnOff = { 0 },
609                 .path_info.asDit2[0].abSrcOnOff = { 0 },
610                 .path_info.asDac[0].abSrcOnOff = { 0 },
611                 .path_info.asDac[1].abSrcOnOff = { 0 },
612                 .path_info.asAe[0].abSrcOnOff = { 0 },
613                 .path_info.asCdsp[0].abSrcOnOff = { 0 },
614                 .path_info.asCdsp[1].abSrcOnOff = { 0 },
615                 .path_info.asCdsp[2].abSrcOnOff = { 0 },
616                 .path_info.asCdsp[3].abSrcOnOff = { 0 },
617                 .path_info.asAdc0[0].abSrcOnOff = { 0 },
618                 .path_info.asAdc0[1].abSrcOnOff = { 0 },
619                 .path_info.asAdc1[0].abSrcOnOff = { 0 },
620                 .path_info.asMix[0].abSrcOnOff = { 0 },
621                 .path_info.asBias[0].abSrcOnOff = { 0 },
622
623                 .path_info.asRcOut[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_R_ON | MCDRV_SRC5_DAC_L_ON,
624                 .path_info.asDit1[0].abSrcOnOff[4] = MCDRV_SRC4_ADC0_ON,
625                 .path_info.asDac[0].abSrcOnOff[6] = MCDRV_SRC6_MIX_ON,
626                 .path_info.asAdc0[0].abSrcOnOff[0] = MCDRV_SRC0_MIC1_ON,
627                 .path_info.asAdc0[1].abSrcOnOff[0] = MCDRV_SRC0_MIC1_ON,
628                 .path_info.asMix[0].abSrcOnOff[3] = MCDRV_SRC3_DIR1_ON,
629
630                 .dac_info = {
631                         .bMasterSwap = 0,
632                         .bVoiceSwap = 0,
633                         .bDcCut = 0,
634                 },
635         },
636         {
637                 .device = AUDIO_DEVICE_OUT_WIRED_HEADPHONE,
638                 .direction = YAMAHA_MC1N2_AUDIO_DIRECTION_MODEM,
639
640                 .ae_info = {
641                         .bOnOff = 0x00,
642                         .abBex = { 0x00 },
643                         .abWide = { 0x00 },
644                         .abDrc = { 0x00 },
645                         .abEq5 = { 0x00 },
646                         .abEq3 = { 0x00 },
647                 },
648
649                 .path_info.asHpOut[0].abSrcOnOff = { 0 },
650                 .path_info.asHpOut[1].abSrcOnOff = { 0 },
651                 .path_info.asSpOut[0].abSrcOnOff = { 0 },
652                 .path_info.asSpOut[1].abSrcOnOff = { 0 },
653                 .path_info.asRcOut[0].abSrcOnOff = { 0 },
654                 .path_info.asLout1[0].abSrcOnOff = { 0 },
655                 .path_info.asLout1[1].abSrcOnOff = { 0 },
656                 .path_info.asLout2[0].abSrcOnOff = { 0 },
657                 .path_info.asLout2[1].abSrcOnOff = { 0 },
658                 .path_info.asPeak[0].abSrcOnOff = { 0 },
659                 .path_info.asDit0[0].abSrcOnOff = { 0 },
660                 .path_info.asDit1[0].abSrcOnOff = { 0 },
661                 .path_info.asDit2[0].abSrcOnOff = { 0 },
662                 .path_info.asDac[0].abSrcOnOff = { 0 },
663                 .path_info.asDac[1].abSrcOnOff = { 0 },
664                 .path_info.asAe[0].abSrcOnOff = { 0 },
665                 .path_info.asCdsp[0].abSrcOnOff = { 0 },
666                 .path_info.asCdsp[1].abSrcOnOff = { 0 },
667                 .path_info.asCdsp[2].abSrcOnOff = { 0 },
668                 .path_info.asCdsp[3].abSrcOnOff = { 0 },
669                 .path_info.asAdc0[0].abSrcOnOff = { 0 },
670                 .path_info.asAdc0[1].abSrcOnOff = { 0 },
671                 .path_info.asAdc1[0].abSrcOnOff = { 0 },
672                 .path_info.asMix[0].abSrcOnOff = { 0 },
673                 .path_info.asBias[0].abSrcOnOff = { 0 },
674
675                 .path_info.asHpOut[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_L_ON,
676                 .path_info.asHpOut[1].abSrcOnOff[5] = MCDRV_SRC5_DAC_R_ON,
677                 .path_info.asDit1[0].abSrcOnOff[4] = MCDRV_SRC4_ADC0_ON,
678                 .path_info.asDac[0].abSrcOnOff[6] = MCDRV_SRC6_MIX_ON,
679                 .path_info.asAdc0[0].abSrcOnOff[0] = MCDRV_SRC0_MIC1_ON,
680                 .path_info.asAdc0[1].abSrcOnOff[0] = MCDRV_SRC0_MIC1_ON,
681                 .path_info.asMix[0].abSrcOnOff[3] = MCDRV_SRC3_DIR1_ON,
682
683                 .dac_info = {
684                         .bMasterSwap = 0,
685                         .bVoiceSwap = 0,
686                         .bDcCut = 0,
687                 },
688         },
689         {
690                 .device = AUDIO_DEVICE_OUT_WIRED_HEADSET,
691                 .direction = YAMAHA_MC1N2_AUDIO_DIRECTION_MODEM,
692
693                 .ae_info = {
694                         .bOnOff = 0x00,
695                         .abBex = { 0x00 },
696                         .abWide = { 0x00 },
697                         .abDrc = { 0x00 },
698                         .abEq5 = { 0x00 },
699                         .abEq3 = { 0x00 },
700                 },
701
702                 .path_info.asHpOut[0].abSrcOnOff = { 0 },
703                 .path_info.asHpOut[1].abSrcOnOff = { 0 },
704                 .path_info.asSpOut[0].abSrcOnOff = { 0 },
705                 .path_info.asSpOut[1].abSrcOnOff = { 0 },
706                 .path_info.asRcOut[0].abSrcOnOff = { 0 },
707                 .path_info.asLout1[0].abSrcOnOff = { 0 },
708                 .path_info.asLout1[1].abSrcOnOff = { 0 },
709                 .path_info.asLout2[0].abSrcOnOff = { 0 },
710                 .path_info.asLout2[1].abSrcOnOff = { 0 },
711                 .path_info.asPeak[0].abSrcOnOff = { 0 },
712                 .path_info.asDit0[0].abSrcOnOff = { 0 },
713                 .path_info.asDit1[0].abSrcOnOff = { 0 },
714                 .path_info.asDit2[0].abSrcOnOff = { 0 },
715                 .path_info.asDac[0].abSrcOnOff = { 0 },
716                 .path_info.asDac[1].abSrcOnOff = { 0 },
717                 .path_info.asAe[0].abSrcOnOff = { 0 },
718                 .path_info.asCdsp[0].abSrcOnOff = { 0 },
719                 .path_info.asCdsp[1].abSrcOnOff = { 0 },
720                 .path_info.asCdsp[2].abSrcOnOff = { 0 },
721                 .path_info.asCdsp[3].abSrcOnOff = { 0 },
722                 .path_info.asAdc0[0].abSrcOnOff = { 0 },
723                 .path_info.asAdc0[1].abSrcOnOff = { 0 },
724                 .path_info.asAdc1[0].abSrcOnOff = { 0 },
725                 .path_info.asMix[0].abSrcOnOff = { 0 },
726                 .path_info.asBias[0].abSrcOnOff = { 0 },
727
728                 .path_info.asHpOut[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_L_ON,
729                 .path_info.asHpOut[1].abSrcOnOff[5] = MCDRV_SRC5_DAC_R_ON,
730                 .path_info.asDit1[0].abSrcOnOff[4] = MCDRV_SRC4_ADC0_ON,
731                 .path_info.asDac[0].abSrcOnOff[6] = MCDRV_SRC6_MIX_ON,
732                 .path_info.asAdc0[0].abSrcOnOff[0] = MCDRV_SRC0_MIC2_ON,
733                 .path_info.asAdc0[1].abSrcOnOff[0] = MCDRV_SRC0_MIC2_ON,
734                 .path_info.asMix[0].abSrcOnOff[3] = MCDRV_SRC3_DIR1_ON,
735
736                 .dac_info = {
737                         .bMasterSwap = 0,
738                         .bVoiceSwap = 0,
739                         .bDcCut = 0,
740                 },
741         },
742         {
743                 .device = AUDIO_DEVICE_OUT_SPEAKER,
744                 .direction = YAMAHA_MC1N2_AUDIO_DIRECTION_MODEM,
745
746                 .ae_info = {
747                         .bOnOff = 0x00,
748                         .abBex = { 0x00 },
749                         .abWide = { 0x00 },
750                         .abDrc = { 0x00 },
751                         .abEq5 = { 0x00 },
752                         .abEq3 = { 0x00 },
753                 },
754
755                 .path_info.asHpOut[0].abSrcOnOff = { 0 },
756                 .path_info.asHpOut[1].abSrcOnOff = { 0 },
757                 .path_info.asSpOut[0].abSrcOnOff = { 0 },
758                 .path_info.asSpOut[1].abSrcOnOff = { 0 },
759                 .path_info.asRcOut[0].abSrcOnOff = { 0 },
760                 .path_info.asLout1[0].abSrcOnOff = { 0 },
761                 .path_info.asLout1[1].abSrcOnOff = { 0 },
762                 .path_info.asLout2[0].abSrcOnOff = { 0 },
763                 .path_info.asLout2[1].abSrcOnOff = { 0 },
764                 .path_info.asPeak[0].abSrcOnOff = { 0 },
765                 .path_info.asDit0[0].abSrcOnOff = { 0 },
766                 .path_info.asDit1[0].abSrcOnOff = { 0 },
767                 .path_info.asDit2[0].abSrcOnOff = { 0 },
768                 .path_info.asDac[0].abSrcOnOff = { 0 },
769                 .path_info.asDac[1].abSrcOnOff = { 0 },
770                 .path_info.asAe[0].abSrcOnOff = { 0 },
771                 .path_info.asCdsp[0].abSrcOnOff = { 0 },
772                 .path_info.asCdsp[1].abSrcOnOff = { 0 },
773                 .path_info.asCdsp[2].abSrcOnOff = { 0 },
774                 .path_info.asCdsp[3].abSrcOnOff = { 0 },
775                 .path_info.asAdc0[0].abSrcOnOff = { 0 },
776                 .path_info.asAdc0[1].abSrcOnOff = { 0 },
777                 .path_info.asAdc1[0].abSrcOnOff = { 0 },
778                 .path_info.asMix[0].abSrcOnOff = { 0 },
779                 .path_info.asBias[0].abSrcOnOff = { 0 },
780
781                 .path_info.asSpOut[0].abSrcOnOff[5] = MCDRV_SRC5_DAC_M_ON,
782                 .path_info.asDac[0].abSrcOnOff[6] = MCDRV_SRC6_MIX_ON,
783                 .path_info.asDit1[0].abSrcOnOff[4] = MCDRV_SRC4_ADC0_ON,
784                 .path_info.asDac[0].abSrcOnOff[6] = MCDRV_SRC6_MIX_ON,
785                 .path_info.asAdc0[0].abSrcOnOff[0] = MCDRV_SRC0_MIC3_ON,
786                 .path_info.asAdc0[1].abSrcOnOff[0] = MCDRV_SRC0_MIC3_ON,
787                 .path_info.asMix[0].abSrcOnOff[3] = MCDRV_SRC3_DIR1_ON,
788
789                 .dac_info = {
790                         .bMasterSwap = 0,
791                         .bVoiceSwap = 0,
792                         .bDcCut = 0,
793                 },
794         },
795 };
796
797 struct yamaha_mc1n2_audio_device_ops galaxys2_ops = {
798         .hw_node = "/dev/snd/hwC0D0",
799         .params = {
800                 .init = &galaxys2_params_init,
801                 .routes = &galaxys2_params_routes,
802                 .routes_count = sizeof(galaxys2_params_routes) /
803                         sizeof(struct yamaha_mc1n2_audio_params_route),
804         },
805 };
806
807 struct yamaha_mc1n2_audio_pdata galaxys2_pdata = {
808         .name = "galaxys2",
809         .ops = &galaxys2_ops,
810 };