120d17057SJack Yu /* SPDX-License-Identifier: GPL-2.0-only */
220d17057SJack Yu /*
320d17057SJack Yu  * rt715-sdca-sdw.h -- RT715 ALSA SoC audio driver header
420d17057SJack Yu  *
520d17057SJack Yu  * Copyright(c) 2020 Realtek Semiconductor Corp.
620d17057SJack Yu  */
720d17057SJack Yu 
820d17057SJack Yu #ifndef __RT715_SDW_SDCA_H__
920d17057SJack Yu #define __RT715_SDW_SDCA_H__
1020d17057SJack Yu 
1120d17057SJack Yu #include <linux/soundwire/sdw_registers.h>
1220d17057SJack Yu 
1320d17057SJack Yu static const struct reg_default rt715_reg_defaults_sdca[] = {
1420d17057SJack Yu 	{ 0x201a, 0x00 },
1520d17057SJack Yu 	{ 0x201e, 0x00 },
1620d17057SJack Yu 	{ 0x2020, 0x00 },
1720d17057SJack Yu 	{ 0x2021, 0x00 },
1820d17057SJack Yu 	{ 0x2022, 0x00 },
1920d17057SJack Yu 	{ 0x2023, 0x00 },
2020d17057SJack Yu 	{ 0x2024, 0x00 },
2120d17057SJack Yu 	{ 0x2025, 0x01 },
2220d17057SJack Yu 	{ 0x2026, 0x00 },
2320d17057SJack Yu 	{ 0x2027, 0x00 },
2420d17057SJack Yu 	{ 0x2029, 0x00 },
2520d17057SJack Yu 	{ 0x202a, 0x00 },
2620d17057SJack Yu 	{ 0x202d, 0x00 },
2720d17057SJack Yu 	{ 0x202e, 0x00 },
2820d17057SJack Yu 	{ 0x202f, 0x00 },
2920d17057SJack Yu 	{ 0x2030, 0x00 },
3020d17057SJack Yu 	{ 0x2031, 0x00 },
3120d17057SJack Yu 	{ 0x2032, 0x00 },
3220d17057SJack Yu 	{ 0x2033, 0x00 },
3320d17057SJack Yu 	{ 0x2034, 0x00 },
3420d17057SJack Yu 	{ 0x2230, 0x00 },
3520d17057SJack Yu 	{ 0x2231, 0x2f },
3620d17057SJack Yu 	{ 0x2232, 0x80 },
3720d17057SJack Yu 	{ 0x2233, 0x00 },
3820d17057SJack Yu 	{ 0x2234, 0x00 },
3920d17057SJack Yu 	{ 0x2235, 0x00 },
4020d17057SJack Yu 	{ 0x2236, 0x00 },
4120d17057SJack Yu 	{ 0x2237, 0x00 },
4220d17057SJack Yu 	{ 0x2238, 0x00 },
4320d17057SJack Yu 	{ 0x2239, 0x00 },
4420d17057SJack Yu 	{ 0x2f01, 0x00 },
4520d17057SJack Yu 	{ 0x2f02, 0x09 },
4620d17057SJack Yu 	{ 0x2f03, 0x0b },
4720d17057SJack Yu 	{ 0x2f04, 0x00 },
4820d17057SJack Yu 	{ 0x2f05, 0x0e },
4920d17057SJack Yu 	{ 0x2f06, 0x01 },
5020d17057SJack Yu 	{ 0x2f08, 0x00 },
5120d17057SJack Yu 	{ 0x2f09, 0x00 },
5220d17057SJack Yu 	{ 0x2f0a, 0x00 },
5320d17057SJack Yu 	{ 0x2f0b, 0x00 },
5420d17057SJack Yu 	{ 0x2f0c, 0x00 },
5520d17057SJack Yu 	{ 0x2f0d, 0x00 },
5620d17057SJack Yu 	{ 0x2f0e, 0x12 },
5720d17057SJack Yu 	{ 0x2f0f, 0x00 },
5820d17057SJack Yu 	{ 0x2f10, 0x00 },
5920d17057SJack Yu 	{ 0x2f11, 0x00 },
6020d17057SJack Yu 	{ 0x2f12, 0x00 },
6120d17057SJack Yu 	{ 0x2f13, 0x00 },
6220d17057SJack Yu 	{ 0x2f14, 0x00 },
6320d17057SJack Yu 	{ 0x2f15, 0x00 },
6420d17057SJack Yu 	{ 0x2f16, 0x00 },
6520d17057SJack Yu 	{ 0x2f17, 0x00 },
6620d17057SJack Yu 	{ 0x2f18, 0x00 },
6720d17057SJack Yu 	{ 0x2f19, 0x03 },
6820d17057SJack Yu 	{ 0x2f1a, 0x00 },
6920d17057SJack Yu 	{ 0x2f1f, 0x10 },
7020d17057SJack Yu 	{ 0x2f20, 0x00 },
7120d17057SJack Yu 	{ 0x2f21, 0x00 },
7220d17057SJack Yu 	{ 0x2f22, 0x00 },
7320d17057SJack Yu 	{ 0x2f23, 0x00 },
7420d17057SJack Yu 	{ 0x2f24, 0x00 },
7520d17057SJack Yu 	{ 0x2f25, 0x00 },
7620d17057SJack Yu 	{ 0x2f52, 0x01 },
7720d17057SJack Yu 	{ 0x2f5a, 0x02 },
7820d17057SJack Yu 	{ 0x2f5b, 0x05 },
7920d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_CX_CLK_SEL_EN,
8020d17057SJack Yu 		RT715_SDCA_CX_CLK_SEL_CTRL, CH_00), 0x1 },
8120d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
8220d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_01), 0x01 },
8320d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
8420d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_02), 0x01 },
8520d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
8620d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_03), 0x01 },
8720d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
8820d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_04), 0x01 },
8920d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
9020d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_01), 0x01 },
9120d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
9220d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_02), 0x01 },
9320d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
9420d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_03), 0x01 },
9520d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
9620d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_04), 0x01 },
9720d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC7_27_VOL,
9820d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_01), 0x01 },
9920d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC7_27_VOL,
10020d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_02), 0x01 },
10120d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_SMPU_TRIG_ST_EN,
10220d17057SJack Yu 		RT715_SDCA_SMPU_TRIG_EN_CTRL, CH_00), 0x02 },
10320d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_SMPU_TRIG_ST_EN,
10420d17057SJack Yu 		RT715_SDCA_SMPU_TRIG_ST_CTRL, CH_00), 0x00 },
10520d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC7_27_VOL,
10620d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_01), 0x01 },
10720d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC7_27_VOL,
10820d17057SJack Yu 		RT715_SDCA_FU_MUTE_CTRL, CH_02), 0x01 },
10920d17057SJack Yu };
11020d17057SJack Yu 
11120d17057SJack Yu static const struct reg_default rt715_mbq_reg_defaults_sdca[] = {
11220d17057SJack Yu 	{ 0x200002b, 0x0420 },
11320d17057SJack Yu 	{ 0x2000036, 0x0000 },
11420d17057SJack Yu 	{ 0x2000037, 0x0000 },
11520d17057SJack Yu 	{ 0x2000039, 0xaa81 },
116*e343d34aSJack Yu 	{ 0x2000044, 0x0202 },
11720d17057SJack Yu 	{ 0x6100000, 0x0100 },
11820d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
11920d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_01), 0x00 },
12020d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
12120d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_02), 0x00 },
12220d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
12320d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_03), 0x00 },
12420d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC8_9_VOL,
12520d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_04), 0x00 },
12620d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
12720d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_01), 0x00 },
12820d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
12920d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_02), 0x00 },
13020d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
13120d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_03), 0x00 },
13220d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC10_11_VOL,
13320d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_04), 0x00 },
13420d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC7_27_VOL,
13520d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_01), 0x00 },
13620d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_ADC7_27_VOL,
13720d17057SJack Yu 		RT715_SDCA_FU_VOL_CTRL, CH_02), 0x00 },
13820d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
13920d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_01), 0x00 },
14020d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
14120d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_02), 0x00 },
14220d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
14320d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_03), 0x00 },
14420d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
14520d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_04), 0x00 },
14620d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
14720d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_05), 0x00 },
14820d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
14920d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_06), 0x00 },
15020d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
15120d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_07), 0x00 },
15220d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_AMIC_GAIN_EN,
15320d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_08), 0x00 },
15420d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
15520d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_01), 0x00 },
15620d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
15720d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_02), 0x00 },
15820d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
15920d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_03), 0x00 },
16020d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
16120d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_04), 0x00 },
16220d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
16320d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_05), 0x00 },
16420d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
16520d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_06), 0x00 },
16620d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
16720d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_07), 0x00 },
16820d17057SJack Yu 	{ SDW_SDCA_CTL(FUN_MIC_ARRAY, RT715_SDCA_FU_DMIC_GAIN_EN,
16920d17057SJack Yu 		RT715_SDCA_FU_DMIC_GAIN_CTRL, CH_08), 0x00 },
17020d17057SJack Yu };
17120d17057SJack Yu #endif /* __RT715_SDW_SDCA_H__ */
172