1*20d17057SJack Yu /* SPDX-License-Identifier: GPL-2.0-only */
2*20d17057SJack Yu /*
3*20d17057SJack Yu  * rt715-sdca-sdw.h -- RT715 ALSA SoC audio driver header
4*20d17057SJack Yu  *
5*20d17057SJack Yu  * Copyright(c) 2020 Realtek Semiconductor Corp.
6*20d17057SJack Yu  */
7*20d17057SJack Yu 
8*20d17057SJack Yu #ifndef __RT715_SDW_SDCA_H__
9*20d17057SJack Yu #define __RT715_SDW_SDCA_H__
10*20d17057SJack Yu 
11*20d17057SJack Yu #include <linux/soundwire/sdw_registers.h>
12*20d17057SJack Yu 
13*20d17057SJack Yu static const struct reg_default rt715_reg_defaults_sdca[] = {
14*20d17057SJack Yu 	{ 0x201a, 0x00 },
15*20d17057SJack Yu 	{ 0x201e, 0x00 },
16*20d17057SJack Yu 	{ 0x2020, 0x00 },
17*20d17057SJack Yu 	{ 0x2021, 0x00 },
18*20d17057SJack Yu 	{ 0x2022, 0x00 },
19*20d17057SJack Yu 	{ 0x2023, 0x00 },
20*20d17057SJack Yu 	{ 0x2024, 0x00 },
21*20d17057SJack Yu 	{ 0x2025, 0x01 },
22*20d17057SJack Yu 	{ 0x2026, 0x00 },
23*20d17057SJack Yu 	{ 0x2027, 0x00 },
24*20d17057SJack Yu 	{ 0x2029, 0x00 },
25*20d17057SJack Yu 	{ 0x202a, 0x00 },
26*20d17057SJack Yu 	{ 0x202d, 0x00 },
27*20d17057SJack Yu 	{ 0x202e, 0x00 },
28*20d17057SJack Yu 	{ 0x202f, 0x00 },
29*20d17057SJack Yu 	{ 0x2030, 0x00 },
30*20d17057SJack Yu 	{ 0x2031, 0x00 },
31*20d17057SJack Yu 	{ 0x2032, 0x00 },
32*20d17057SJack Yu 	{ 0x2033, 0x00 },
33*20d17057SJack Yu 	{ 0x2034, 0x00 },
34*20d17057SJack Yu 	{ 0x2230, 0x00 },
35*20d17057SJack Yu 	{ 0x2231, 0x2f },
36*20d17057SJack Yu 	{ 0x2232, 0x80 },
37*20d17057SJack Yu 	{ 0x2233, 0x00 },
38*20d17057SJack Yu 	{ 0x2234, 0x00 },
39*20d17057SJack Yu 	{ 0x2235, 0x00 },
40*20d17057SJack Yu 	{ 0x2236, 0x00 },
41*20d17057SJack Yu 	{ 0x2237, 0x00 },
42*20d17057SJack Yu 	{ 0x2238, 0x00 },
43*20d17057SJack Yu 	{ 0x2239, 0x00 },
44*20d17057SJack Yu 	{ 0x2f01, 0x00 },
45*20d17057SJack Yu 	{ 0x2f02, 0x09 },
46*20d17057SJack Yu 	{ 0x2f03, 0x0b },
47*20d17057SJack Yu 	{ 0x2f04, 0x00 },
48*20d17057SJack Yu 	{ 0x2f05, 0x0e },
49*20d17057SJack Yu 	{ 0x2f06, 0x01 },
50*20d17057SJack Yu 	{ 0x2f08, 0x00 },
51*20d17057SJack Yu 	{ 0x2f09, 0x00 },
52*20d17057SJack Yu 	{ 0x2f0a, 0x00 },
53*20d17057SJack Yu 	{ 0x2f0b, 0x00 },
54*20d17057SJack Yu 	{ 0x2f0c, 0x00 },
55*20d17057SJack Yu 	{ 0x2f0d, 0x00 },
56*20d17057SJack Yu 	{ 0x2f0e, 0x12 },
57*20d17057SJack Yu 	{ 0x2f0f, 0x00 },
58*20d17057SJack Yu 	{ 0x2f10, 0x00 },
59*20d17057SJack Yu 	{ 0x2f11, 0x00 },
60*20d17057SJack Yu 	{ 0x2f12, 0x00 },
61*20d17057SJack Yu 	{ 0x2f13, 0x00 },
62*20d17057SJack Yu 	{ 0x2f14, 0x00 },
63*20d17057SJack Yu 	{ 0x2f15, 0x00 },
64*20d17057SJack Yu 	{ 0x2f16, 0x00 },
65*20d17057SJack Yu 	{ 0x2f17, 0x00 },
66*20d17057SJack Yu 	{ 0x2f18, 0x00 },
67*20d17057SJack Yu 	{ 0x2f19, 0x03 },
68*20d17057SJack Yu 	{ 0x2f1a, 0x00 },
69*20d17057SJack Yu 	{ 0x2f1f, 0x10 },
70*20d17057SJack Yu 	{ 0x2f20, 0x00 },
71*20d17057SJack Yu 	{ 0x2f21, 0x00 },
72*20d17057SJack Yu 	{ 0x2f22, 0x00 },
73*20d17057SJack Yu 	{ 0x2f23, 0x00 },
74*20d17057SJack Yu 	{ 0x2f24, 0x00 },
75*20d17057SJack Yu 	{ 0x2f25, 0x00 },
76*20d17057SJack Yu 	{ 0x2f52, 0x01 },
77*20d17057SJack Yu 	{ 0x2f5a, 0x02 },
78*20d17057SJack Yu 	{ 0x2f5b, 0x05 },
79*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_CX_CLK_SEL_EN,
80*20d17057SJack Yu 		RT715_SDCA_CX_CLK_SEL_CTRL, CH_00), 0x1 },
81*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
82*20d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_01), 0x01 },
83*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
84*20d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_02), 0x01 },
85*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
86*20d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_03), 0x01 },
87*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
88*20d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_04), 0x01 },
89*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
90*20d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_01), 0x01 },
91*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
92*20d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_02), 0x01 },
93*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
94*20d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_03), 0x01 },
95*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
96*20d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_04), 0x01 },
97*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC7_27_VOL,
98*20d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_01), 0x01 },
99*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC7_27_VOL,
100*20d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_02), 0x01 },
101*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_SMPU_TRIG_ST_EN,
102*20d17057SJack Yu 		RT715_SDCA_SMPU_TRIG_EN_CTRL, CH_00), 0x02 },
103*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_SMPU_TRIG_ST_EN,
104*20d17057SJack Yu 		RT715_SDCA_SMPU_TRIG_ST_CTRL, CH_00), 0x00 },
105*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC7_27_VOL,
106*20d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_01), 0x01 },
107*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC7_27_VOL,
108*20d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_02), 0x01 },
109*20d17057SJack Yu };
110*20d17057SJack Yu 
111*20d17057SJack Yu static const struct reg_default rt715_mbq_reg_defaults_sdca[] = {
112*20d17057SJack Yu 	{ 0x200002b, 0x0420 },
113*20d17057SJack Yu 	{ 0x2000036, 0x0000 },
114*20d17057SJack Yu 	{ 0x2000037, 0x0000 },
115*20d17057SJack Yu 	{ 0x2000039, 0xaa81 },
116*20d17057SJack Yu 	{ 0x6100000, 0x0100 },
117*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
118*20d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_01), 0x00 },
119*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
120*20d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_02), 0x00 },
121*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
122*20d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_03), 0x00 },
123*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
124*20d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_04), 0x00 },
125*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
126*20d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_01), 0x00 },
127*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
128*20d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_02), 0x00 },
129*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
130*20d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_03), 0x00 },
131*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
132*20d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_04), 0x00 },
133*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC7_27_VOL,
134*20d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_01), 0x00 },
135*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC7_27_VOL,
136*20d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_02), 0x00 },
137*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
138*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_01), 0x00 },
139*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
140*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_02), 0x00 },
141*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
142*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_03), 0x00 },
143*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
144*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_04), 0x00 },
145*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
146*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_05), 0x00 },
147*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
148*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_06), 0x00 },
149*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
150*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_07), 0x00 },
151*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
152*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_08), 0x00 },
153*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
154*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_01), 0x00 },
155*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
156*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_02), 0x00 },
157*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
158*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_03), 0x00 },
159*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
160*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_04), 0x00 },
161*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
162*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_05), 0x00 },
163*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
164*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_06), 0x00 },
165*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
166*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_07), 0x00 },
167*20d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
168*20d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_08), 0x00 },
169*20d17057SJack Yu };
170*20d17057SJack Yu #endif /* __RT715_SDW_SDCA_H__ */
171