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