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