1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * rt712-sdca-sdw.h -- RT712 SDCA ALSA SoC audio driver header
5 * Copyright(c) 2023 Realtek Semiconductor Corp.
8 #ifndef __RT712_SDW_H__
9 #define __RT712_SDW_H__
11 #include <linux/regmap.h>
12 #include <linux/soundwire/sdw_registers.h>
14 static const struct reg_default rt712_sdca_reg_defaults
[] = {
16 { SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC
, RT712_SDCA_ENT_CS01
, RT712_SDCA_CTL_SAMPLE_FREQ_INDEX
, 0), 0x09 },
17 { SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC
, RT712_SDCA_ENT_CS11
, RT712_SDCA_CTL_SAMPLE_FREQ_INDEX
, 0), 0x09 },
18 { SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC
, RT712_SDCA_ENT_USER_FU05
, RT712_SDCA_CTL_FU_MUTE
, CH_01
), 0x01 },
19 { SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC
, RT712_SDCA_ENT_USER_FU05
, RT712_SDCA_CTL_FU_MUTE
, CH_02
), 0x01 },
20 { SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC
, RT712_SDCA_ENT_USER_FU0F
, RT712_SDCA_CTL_FU_MUTE
, CH_01
), 0x01 },
21 { SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC
, RT712_SDCA_ENT_USER_FU0F
, RT712_SDCA_CTL_FU_MUTE
, CH_02
), 0x01 },
22 { SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC
, RT712_SDCA_ENT_PDE40
, RT712_SDCA_CTL_REQ_POWER_STATE
, 0), 0x03 },
23 { SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC
, RT712_SDCA_ENT_PDE12
, RT712_SDCA_CTL_REQ_POWER_STATE
, 0), 0x03 },
24 { SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY
, RT712_SDCA_ENT_CS1C
, RT712_SDCA_CTL_SAMPLE_FREQ_INDEX
, 0), 0x09 },
25 { SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY
, RT712_SDCA_ENT_USER_FU1E
, RT712_SDCA_CTL_FU_MUTE
, CH_01
), 0x01 },
26 { SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY
, RT712_SDCA_ENT_USER_FU1E
, RT712_SDCA_CTL_FU_MUTE
, CH_02
), 0x01 },
27 { SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY
, RT712_SDCA_ENT_USER_FU1E
, RT712_SDCA_CTL_FU_MUTE
, CH_03
), 0x01 },
28 { SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY
, RT712_SDCA_ENT_USER_FU1E
, RT712_SDCA_CTL_FU_MUTE
, CH_04
), 0x01 },
29 { SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY
, RT712_SDCA_ENT_CS1F
, RT712_SDCA_CTL_SAMPLE_FREQ_INDEX
, 0), 0x09 },
30 { SDW_SDCA_CTL(FUNC_NUM_AMP
, RT712_SDCA_ENT_USER_FU06
, RT712_SDCA_CTL_FU_MUTE
, CH_01
), 0x01 },
31 { SDW_SDCA_CTL(FUNC_NUM_AMP
, RT712_SDCA_ENT_USER_FU06
, RT712_SDCA_CTL_FU_MUTE
, CH_02
), 0x01 },
32 { SDW_SDCA_CTL(FUNC_NUM_AMP
, RT712_SDCA_ENT_PDE23
, RT712_SDCA_CTL_REQ_POWER_STATE
, 0), 0x03 },
33 { SDW_SDCA_CTL(FUNC_NUM_AMP
, RT712_SDCA_ENT_CS31
, RT712_SDCA_CTL_SAMPLE_FREQ_INDEX
, 0), 0x09 },
34 { SDW_SDCA_CTL(FUNC_NUM_AMP
, RT712_SDCA_ENT_OT23
, RT712_SDCA_CTL_VENDOR_DEF
, 0), 0x00 },
37 static const struct reg_default rt712_sdca_mbq_defaults
[] = {
38 { 0x2000004, 0xaa01 },
39 { 0x200000e, 0x21e0 },
40 { 0x200004a, 0x8830 },
41 { 0x2000067, 0xf100 },
42 { 0x5800000, 0x1893 },
43 { 0x5b00000, 0x0407 },
44 { 0x5b00005, 0x0000 },
45 { 0x5b00029, 0x3fff },
46 { 0x5b0002a, 0xf000 },
47 { 0x6100000, 0x04e4 },
48 { 0x610000e, 0x0007 },
49 { 0x6100045, 0x0860 },
50 { 0x6100046, 0x0029 },
51 { 0x6100053, 0x3fff },
52 { 0x6100055, 0x0000 },
53 { 0x6100060, 0x0000 },
54 { 0x6100064, 0x8000 },
55 { 0x6100065, 0x0000 },
56 { 0x6100067, 0xff12 },
57 { SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC
, RT712_SDCA_ENT_USER_FU05
, RT712_SDCA_CTL_FU_VOLUME
, CH_01
), 0x0000 },
58 { SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC
, RT712_SDCA_ENT_USER_FU05
, RT712_SDCA_CTL_FU_VOLUME
, CH_02
), 0x0000 },
59 { SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC
, RT712_SDCA_ENT_USER_FU0F
, RT712_SDCA_CTL_FU_VOLUME
, CH_01
), 0x0000 },
60 { SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC
, RT712_SDCA_ENT_USER_FU0F
, RT712_SDCA_CTL_FU_VOLUME
, CH_02
), 0x0000 },
61 { SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC
, RT712_SDCA_ENT_PLATFORM_FU44
, RT712_SDCA_CTL_FU_CH_GAIN
, CH_01
), 0x0000 },
62 { SDW_SDCA_CTL(FUNC_NUM_JACK_CODEC
, RT712_SDCA_ENT_PLATFORM_FU44
, RT712_SDCA_CTL_FU_CH_GAIN
, CH_02
), 0x0000 },
63 { SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY
, RT712_SDCA_ENT_PLATFORM_FU15
, RT712_SDCA_CTL_FU_CH_GAIN
, CH_01
), 0x0000 },
64 { SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY
, RT712_SDCA_ENT_PLATFORM_FU15
, RT712_SDCA_CTL_FU_CH_GAIN
, CH_02
), 0x0000 },
65 { SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY
, RT712_SDCA_ENT_PLATFORM_FU15
, RT712_SDCA_CTL_FU_CH_GAIN
, CH_03
), 0x0000 },
66 { SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY
, RT712_SDCA_ENT_PLATFORM_FU15
, RT712_SDCA_CTL_FU_CH_GAIN
, CH_04
), 0x0000 },
67 { SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY
, RT712_SDCA_ENT_USER_FU1E
, RT712_SDCA_CTL_FU_VOLUME
, CH_01
), 0x0000 },
68 { SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY
, RT712_SDCA_ENT_USER_FU1E
, RT712_SDCA_CTL_FU_VOLUME
, CH_02
), 0x0000 },
69 { SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY
, RT712_SDCA_ENT_USER_FU1E
, RT712_SDCA_CTL_FU_VOLUME
, CH_03
), 0x0000 },
70 { SDW_SDCA_CTL(FUNC_NUM_MIC_ARRAY
, RT712_SDCA_ENT_USER_FU1E
, RT712_SDCA_CTL_FU_VOLUME
, CH_04
), 0x0000 },
71 { SDW_SDCA_CTL(FUNC_NUM_AMP
, RT712_SDCA_ENT_USER_FU06
, RT712_SDCA_CTL_FU_VOLUME
, CH_01
), 0x0000 },
72 { SDW_SDCA_CTL(FUNC_NUM_AMP
, RT712_SDCA_ENT_USER_FU06
, RT712_SDCA_CTL_FU_VOLUME
, CH_02
), 0x0000 },
75 #endif /* __RT712_SDW_H__ */