GNU Linux-libre 5.19-rc6-gnu
[releases.git] / drivers / net / wireless / realtek / rtw89 / rtw8852c_rfk_table.c
1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
2 /* Copyright(c) 2019-2022  Realtek Corporation
3  */
4
5 #include "rtw8852c_rfk_table.h"
6
7 static const struct rtw89_reg5_def rtw8852c_dack_reload_defs[] = {
8         RTW89_DECL_RFK_WM(0xc004, BIT(17), 0x1),
9         RTW89_DECL_RFK_WM(0xc024, BIT(17), 0x1),
10         RTW89_DECL_RFK_WM(0xc104, BIT(17), 0x1),
11         RTW89_DECL_RFK_WM(0xc124, BIT(17), 0x1),
12 };
13
14 RTW89_DECLARE_RFK_TBL(rtw8852c_dack_reload_defs);
15
16 static const struct rtw89_reg5_def rtw8852c_dack_reset_defs_a[] = {
17         RTW89_DECL_RFK_WM(0xc000, BIT(17), 0x0),
18         RTW89_DECL_RFK_WM(0xc000, BIT(17), 0x1),
19 };
20
21 RTW89_DECLARE_RFK_TBL(rtw8852c_dack_reset_defs_a);
22
23 static const struct rtw89_reg5_def rtw8852c_dack_reset_defs_b[] = {
24         RTW89_DECL_RFK_WM(0xc100, BIT(17), 0x0),
25         RTW89_DECL_RFK_WM(0xc100, BIT(17), 0x1),
26 };
27
28 RTW89_DECLARE_RFK_TBL(rtw8852c_dack_reset_defs_b);
29
30 static const struct rtw89_reg5_def rtw8852c_dack_defs_s0[] = {
31         RTW89_DECL_RFK_WM(0x12b8, BIT(30), 0x1),
32         RTW89_DECL_RFK_WM(0x030c, BIT(28), 0x1),
33         RTW89_DECL_RFK_WM(0x032c, 0x80000000, 0x0),
34         RTW89_DECL_RFK_WM(0xc004, 0xfff00000, 0x30),
35         RTW89_DECL_RFK_WM(0xc024, 0xfff00000, 0x30),
36 };
37
38 RTW89_DECLARE_RFK_TBL(rtw8852c_dack_defs_s0);
39
40 static const struct rtw89_reg5_def rtw8852c_dack_defs_s1[] = {
41         RTW89_DECL_RFK_WM(0x32b8, BIT(30), 0x1),
42         RTW89_DECL_RFK_WM(0x030c, BIT(28), 0x1),
43         RTW89_DECL_RFK_WM(0x032c, 0x80000000, 0x0),
44         RTW89_DECL_RFK_WM(0xc104, 0xfff00000, 0x30),
45         RTW89_DECL_RFK_WM(0xc124, 0xfff00000, 0x30),
46 };
47
48 RTW89_DECLARE_RFK_TBL(rtw8852c_dack_defs_s1);
49
50 static const struct rtw89_reg5_def rtw8852c_drck_defs[] = {
51         RTW89_DECL_RFK_WM(0xc0c4, BIT(6), 0x0),
52         RTW89_DECL_RFK_WM(0xc094, BIT(9), 0x1),
53         RTW89_DECL_RFK_DELAY(1),
54         RTW89_DECL_RFK_WM(0xc094, BIT(9), 0x0),
55 };
56
57 RTW89_DECLARE_RFK_TBL(rtw8852c_drck_defs);
58
59 static const struct rtw89_reg5_def rtw8852c_iqk_rxk_cfg_defs[] = {
60         RTW89_DECL_RFK_WM(0x030c, 0xff000000, 0x0f),
61         RTW89_DECL_RFK_WM(0x030c, 0xff000000, 0x03),
62         RTW89_DECL_RFK_WM(0x032c, 0xffff0000, 0x0001),
63         RTW89_DECL_RFK_WM(0x032c, 0xffff0000, 0x0041),
64 };
65
66 RTW89_DECLARE_RFK_TBL(rtw8852c_iqk_rxk_cfg_defs);
67
68 static const struct rtw89_reg5_def rtw8852c_iqk_afebb_restore_defs_a[] = {
69         RTW89_DECL_RFK_WM(0x12b8, 0x40000000, 0x0),
70         RTW89_DECL_RFK_WM(0x20fc, 0x00010000, 0x1),
71         RTW89_DECL_RFK_WM(0x20fc, 0x00100000, 0x0),
72         RTW89_DECL_RFK_WM(0x20fc, 0x01000000, 0x1),
73         RTW89_DECL_RFK_WM(0x20fc, 0x10000000, 0x0),
74         RTW89_DECL_RFK_WM(0x5670, MASKDWORD, 0x00000000),
75         RTW89_DECL_RFK_WM(0x12a0, 0x000ff000, 0x00),
76         RTW89_DECL_RFK_WM(0x20fc, 0x00010000, 0x0),
77         RTW89_DECL_RFK_WM(0x20fc, 0x01000000, 0x0),
78         RTW89_DECL_RFK_WRF(RF_PATH_A, 0x10005, 0x00001, 0x1),
79 };
80
81 RTW89_DECLARE_RFK_TBL(rtw8852c_iqk_afebb_restore_defs_a);
82
83 static const struct rtw89_reg5_def rtw8852c_iqk_afebb_restore_defs_b[] = {
84         RTW89_DECL_RFK_WM(0x32b8, 0x40000000, 0x0),
85         RTW89_DECL_RFK_WM(0x20fc, 0x00020000, 0x1),
86         RTW89_DECL_RFK_WM(0x20fc, 0x00200000, 0x0),
87         RTW89_DECL_RFK_WM(0x20fc, 0x02000000, 0x1),
88         RTW89_DECL_RFK_WM(0x20fc, 0x20000000, 0x0),
89         RTW89_DECL_RFK_WM(0x7670, MASKDWORD, 0x00000000),
90         RTW89_DECL_RFK_WM(0x32a0, 0x000ff000, 0x00),
91         RTW89_DECL_RFK_WM(0x20fc, 0x00020000, 0x0),
92         RTW89_DECL_RFK_WM(0x20fc, 0x02000000, 0x0),
93         RTW89_DECL_RFK_WRF(RF_PATH_B, 0x10005, 0x00001, 0x1),
94 };
95
96 RTW89_DECLARE_RFK_TBL(rtw8852c_iqk_afebb_restore_defs_b);
97
98 static const struct rtw89_reg5_def rtw8852c_read_rxsram_pre_defs[] = {
99         RTW89_DECL_RFK_WM(0x80e8, BIT(7), 0x1),
100         RTW89_DECL_RFK_WM(0x8074, BIT(31), 0x1),
101         RTW89_DECL_RFK_WM(0x80d4, MASKDWORD, 0x00020000),
102 };
103
104 RTW89_DECLARE_RFK_TBL(rtw8852c_read_rxsram_pre_defs);
105
106 static const struct rtw89_reg5_def rtw8852c_read_rxsram_post_defs[] = {
107         RTW89_DECL_RFK_WM(0x80e8, BIT(7), 0x0),
108         RTW89_DECL_RFK_WM(0x8074, BIT(31), 0x0),
109 };
110
111 RTW89_DECLARE_RFK_TBL(rtw8852c_read_rxsram_post_defs);
112
113 static const struct rtw89_reg5_def rtw8852c_dpk_mdpd_order0_defs[] = {
114         RTW89_DECL_RFK_WM(0x80a0, BIT(1) | BIT(0), 0x0),
115         RTW89_DECL_RFK_WM(0x809c, BIT(10) | BIT(9), 0x2),
116         RTW89_DECL_RFK_WM(0x80a0, 0x00001F00, 0x4),
117         RTW89_DECL_RFK_WM(0x8070, 0x70000000, 0x1),
118 };
119
120 RTW89_DECLARE_RFK_TBL(rtw8852c_dpk_mdpd_order0_defs);
121
122 static const struct rtw89_reg5_def rtw8852c_dpk_mdpd_order1_defs[] = {
123         RTW89_DECL_RFK_WM(0x80a0, BIT(1) | BIT(0), 0x1),
124         RTW89_DECL_RFK_WM(0x809c, BIT(10) | BIT(9), 0x1),
125         RTW89_DECL_RFK_WM(0x80a0, 0x00001F00, 0x0),
126         RTW89_DECL_RFK_WM(0x8070, 0x70000000, 0x0),
127 };
128
129 RTW89_DECLARE_RFK_TBL(rtw8852c_dpk_mdpd_order1_defs);
130
131 static const struct rtw89_reg5_def rtw8852c_dpk_mdpd_order2_defs[] = {
132         RTW89_DECL_RFK_WM(0x80a0, BIT(1) | BIT(0), 0x2),
133         RTW89_DECL_RFK_WM(0x809c, BIT(10) | BIT(9), 0x0),
134         RTW89_DECL_RFK_WM(0x80a0, 0x00001F00, 0x0),
135         RTW89_DECL_RFK_WM(0x8070, 0x70000000, 0x0),
136 };
137
138 RTW89_DECLARE_RFK_TBL(rtw8852c_dpk_mdpd_order2_defs);
139
140 static const struct rtw89_reg5_def rtw8852c_dpk_mdpd_order3_defs[] = {
141         RTW89_DECL_RFK_WM(0x80a0, BIT(1) | BIT(0), 0x3),
142         RTW89_DECL_RFK_WM(0x809c, BIT(10) | BIT(9), 0x3),
143         RTW89_DECL_RFK_WM(0x80a0, 0x00001F00, 0x4),
144         RTW89_DECL_RFK_WM(0x8070, 0x70000000, 0x1),
145 };
146
147 RTW89_DECLARE_RFK_TBL(rtw8852c_dpk_mdpd_order3_defs);
148
149 static const struct rtw89_reg5_def rtw8852c_dpk_kip_pwr_clk_on_defs[] = {
150         RTW89_DECL_RFK_WM(0x8008, MASKDWORD, 0x00000080),
151         RTW89_DECL_RFK_WM(0x8088, MASKDWORD, 0x807f030a),
152 };
153
154 RTW89_DECLARE_RFK_TBL(rtw8852c_dpk_kip_pwr_clk_on_defs);
155
156 static const struct rtw89_reg5_def rtw8852c_dpk_kip_pwr_clk_off_defs[] = {
157         RTW89_DECL_RFK_WM(0x8008, MASKDWORD, 0x00000000),
158         RTW89_DECL_RFK_WM(0x8088, MASKDWORD, 0x80000000),
159         RTW89_DECL_RFK_WM(0x80f4, BIT(18), 0x1),
160 };
161
162 RTW89_DECLARE_RFK_TBL(rtw8852c_dpk_kip_pwr_clk_off_defs);
163
164 static const struct rtw89_reg5_def rtw8852c_tssi_sys_defs[] = {
165         RTW89_DECL_RFK_WM(0x12bc, 0x000ffff0, 0xb5b5),
166         RTW89_DECL_RFK_WM(0x32bc, 0x000ffff0, 0xb5b5),
167         RTW89_DECL_RFK_WM(0x0300, 0xff000000, 0x16),
168         RTW89_DECL_RFK_WM(0x0304, 0x0000ffff, 0x1f19),
169         RTW89_DECL_RFK_WM(0x0308, 0xff000000, 0x1c),
170         RTW89_DECL_RFK_WM(0x0314, 0xffff0000, 0x2041),
171         RTW89_DECL_RFK_WM(0x0318, 0xffffffff, 0x20012041),
172         RTW89_DECL_RFK_WM(0x0324, 0xffff0000, 0x2001),
173         RTW89_DECL_RFK_WM(0x0020, 0x00006000, 0x3),
174         RTW89_DECL_RFK_WM(0x0024, 0x00006000, 0x3),
175         RTW89_DECL_RFK_WM(0x0704, 0xffff0000, 0x601e),
176         RTW89_DECL_RFK_WM(0x2704, 0xffff0000, 0x601e),
177         RTW89_DECL_RFK_WM(0x0700, 0xf0000000, 0x4),
178         RTW89_DECL_RFK_WM(0x2700, 0xf0000000, 0x4),
179         RTW89_DECL_RFK_WM(0x0650, 0x3c000000, 0x0),
180         RTW89_DECL_RFK_WM(0x2650, 0x3c000000, 0x0),
181 };
182
183 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_sys_defs);
184
185 static const struct rtw89_reg5_def rtw8852c_tssi_sys_defs_2g_a[] = {
186         RTW89_DECL_RFK_WM(0x120c, 0x000000ff, 0x33),
187         RTW89_DECL_RFK_WM(0x12c0, 0x0ff00000, 0x33),
188         RTW89_DECL_RFK_WM(0x58f8, 0x40000000, 0x1),
189 };
190
191 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_sys_defs_2g_a);
192
193 static const struct rtw89_reg5_def rtw8852c_tssi_sys_defs_2g_b[] = {
194         RTW89_DECL_RFK_WM(0x320c, 0x000000ff, 0x33),
195         RTW89_DECL_RFK_WM(0x32c0, 0x0ff00000, 0x33),
196         RTW89_DECL_RFK_WM(0x78f8, 0x40000000, 0x1),
197 };
198
199 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_sys_defs_2g_b);
200
201 static const struct rtw89_reg5_def rtw8852c_tssi_sys_defs_5g_a[] = {
202         RTW89_DECL_RFK_WM(0x120c, 0x000000ff, 0x44),
203         RTW89_DECL_RFK_WM(0x12c0, 0x0ff00000, 0x44),
204         RTW89_DECL_RFK_WM(0x58f8, 0x40000000, 0x0),
205 };
206
207 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_sys_defs_5g_a);
208
209 static const struct rtw89_reg5_def rtw8852c_tssi_sys_defs_5g_b[] = {
210         RTW89_DECL_RFK_WM(0x320c, 0x000000ff, 0x44),
211         RTW89_DECL_RFK_WM(0x32c0, 0x0ff00000, 0x44),
212         RTW89_DECL_RFK_WM(0x78f8, 0x40000000, 0x0),
213 };
214
215 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_sys_defs_5g_b);
216
217 static const struct rtw89_reg5_def rtw8852c_tssi_txpwr_ctrl_bb_defs_a[] = {
218         RTW89_DECL_RFK_WM(0x566c, 0x00001000, 0x0),
219         RTW89_DECL_RFK_WM(0x5800, 0xffffffff, 0x003f807f),
220         RTW89_DECL_RFK_WM(0x580c, 0x0000007f, 0x40),
221         RTW89_DECL_RFK_WM(0x580c, 0x0fffff00, 0x00040),
222         RTW89_DECL_RFK_WM(0x5810, 0xffffffff, 0x59010000),
223         RTW89_DECL_RFK_WM(0x5814, 0x01ffffff, 0x026d000),
224         RTW89_DECL_RFK_WM(0x5814, 0xf8000000, 0x00),
225         RTW89_DECL_RFK_WM(0x5818, 0xffffffff, 0x002c1800),
226         RTW89_DECL_RFK_WM(0x581c, 0x3fffffff, 0x3dc80280),
227         RTW89_DECL_RFK_WM(0x5820, 0xffffffff, 0x00000080),
228         RTW89_DECL_RFK_WM(0x58e8, 0x0000003f, 0x03),
229         RTW89_DECL_RFK_WM(0x580c, 0x10000000, 0x1),
230         RTW89_DECL_RFK_WM(0x580c, 0x40000000, 0x1),
231         RTW89_DECL_RFK_WM(0x5834, 0x3fffffff, 0x000115f2),
232         RTW89_DECL_RFK_WM(0x5838, 0x7fffffff, 0x0000121),
233         RTW89_DECL_RFK_WM(0x5854, 0x3fffffff, 0x000115f2),
234         RTW89_DECL_RFK_WM(0x5858, 0x7fffffff, 0x0000121),
235         RTW89_DECL_RFK_WM(0x5860, 0x80000000, 0x0),
236         RTW89_DECL_RFK_WM(0x5864, 0x07ffffff, 0x00801ff),
237         RTW89_DECL_RFK_WM(0x5898, 0xffffffff, 0x00000000),
238         RTW89_DECL_RFK_WM(0x589c, 0xffffffff, 0x00000000),
239         RTW89_DECL_RFK_WM(0x58a4, 0x000000ff, 0x16),
240         RTW89_DECL_RFK_WM(0x58b4, 0x7fffffff, 0x0a002000),
241         RTW89_DECL_RFK_WM(0x58b8, 0x7fffffff, 0x00007628),
242         RTW89_DECL_RFK_WM(0x58bc, 0x07ffffff, 0x7a7807f),
243         RTW89_DECL_RFK_WM(0x58c0, 0xfffe0000, 0x003f),
244         RTW89_DECL_RFK_WM(0x58c4, 0xffffffff, 0x0003ffff),
245         RTW89_DECL_RFK_WM(0x58c8, 0x00ffffff, 0x000000),
246         RTW89_DECL_RFK_WM(0x58c8, 0xf0000000, 0x0),
247         RTW89_DECL_RFK_WM(0x58cc, 0xffffffff, 0x00000000),
248         RTW89_DECL_RFK_WM(0x58d0, 0x07ffffff, 0x2008101),
249         RTW89_DECL_RFK_WM(0x58d4, 0x000000ff, 0x00),
250         RTW89_DECL_RFK_WM(0x58d4, 0x0003fe00, 0x0ff),
251         RTW89_DECL_RFK_WM(0x58d4, 0x07fc0000, 0x100),
252         RTW89_DECL_RFK_WM(0x58d8, 0xffffffff, 0x8008016c),
253         RTW89_DECL_RFK_WM(0x58dc, 0x0001ffff, 0x0807f),
254         RTW89_DECL_RFK_WM(0x58dc, 0xfff00000, 0x800),
255         RTW89_DECL_RFK_WM(0x58f0, 0x0003ffff, 0x001ff),
256         RTW89_DECL_RFK_WM(0x58f4, 0x000fffff, 0x000),
257         RTW89_DECL_RFK_WM(0x58f8, 0x000fffff, 0x000),
258 };
259
260 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_txpwr_ctrl_bb_defs_a);
261
262 static const struct rtw89_reg5_def rtw8852c_tssi_txpwr_ctrl_bb_defs_b[] = {
263         RTW89_DECL_RFK_WM(0x566c, 0x00001000, 0x0),
264         RTW89_DECL_RFK_WM(0x7800, 0xffffffff, 0x003f807f),
265         RTW89_DECL_RFK_WM(0x780c, 0x0000007f, 0x40),
266         RTW89_DECL_RFK_WM(0x780c, 0x0fffff00, 0x00040),
267         RTW89_DECL_RFK_WM(0x7810, 0xffffffff, 0x59010000),
268         RTW89_DECL_RFK_WM(0x7814, 0x01ffffff, 0x026d000),
269         RTW89_DECL_RFK_WM(0x7814, 0xf8000000, 0x00),
270         RTW89_DECL_RFK_WM(0x7818, 0xffffffff, 0x002c1800),
271         RTW89_DECL_RFK_WM(0x781c, 0x3fffffff, 0x3dc80280),
272         RTW89_DECL_RFK_WM(0x7820, 0xffffffff, 0x00000080),
273         RTW89_DECL_RFK_WM(0x78e8, 0x0000003f, 0x03),
274         RTW89_DECL_RFK_WM(0x780c, 0x10000000, 0x1),
275         RTW89_DECL_RFK_WM(0x780c, 0x40000000, 0x1),
276         RTW89_DECL_RFK_WM(0x7834, 0x3fffffff, 0x000115f2),
277         RTW89_DECL_RFK_WM(0x7838, 0x7fffffff, 0x0000121),
278         RTW89_DECL_RFK_WM(0x7854, 0x3fffffff, 0x000115f2),
279         RTW89_DECL_RFK_WM(0x7858, 0x7fffffff, 0x0000121),
280         RTW89_DECL_RFK_WM(0x7860, 0x80000000, 0x0),
281         RTW89_DECL_RFK_WM(0x7864, 0x07ffffff, 0x00801ff),
282         RTW89_DECL_RFK_WM(0x7898, 0xffffffff, 0x00000000),
283         RTW89_DECL_RFK_WM(0x789c, 0xffffffff, 0x00000000),
284         RTW89_DECL_RFK_WM(0x78a4, 0x000000ff, 0x16),
285         RTW89_DECL_RFK_WM(0x78b4, 0x7fffffff, 0x0a002000),
286         RTW89_DECL_RFK_WM(0x78b8, 0x7fffffff, 0x00007628),
287         RTW89_DECL_RFK_WM(0x78bc, 0x07ffffff, 0x7a7807f),
288         RTW89_DECL_RFK_WM(0x78c0, 0xfffe0000, 0x003f),
289         RTW89_DECL_RFK_WM(0x78c4, 0xffffffff, 0x0003ffff),
290         RTW89_DECL_RFK_WM(0x78c8, 0x00ffffff, 0x000000),
291         RTW89_DECL_RFK_WM(0x78c8, 0xf0000000, 0x0),
292         RTW89_DECL_RFK_WM(0x78cc, 0xffffffff, 0x00000000),
293         RTW89_DECL_RFK_WM(0x78d0, 0x07ffffff, 0x2008101),
294         RTW89_DECL_RFK_WM(0x78d4, 0x000000ff, 0x00),
295         RTW89_DECL_RFK_WM(0x78d4, 0x0003fe00, 0x0ff),
296         RTW89_DECL_RFK_WM(0x78d4, 0x07fc0000, 0x100),
297         RTW89_DECL_RFK_WM(0x78d8, 0xffffffff, 0x8008016c),
298         RTW89_DECL_RFK_WM(0x78dc, 0x0001ffff, 0x0807f),
299         RTW89_DECL_RFK_WM(0x78dc, 0xfff00000, 0x800),
300         RTW89_DECL_RFK_WM(0x78f0, 0x0003ffff, 0x001ff),
301         RTW89_DECL_RFK_WM(0x78f4, 0x000fffff, 0x000),
302         RTW89_DECL_RFK_WM(0x78f8, 0x000fffff, 0x000),
303 };
304
305 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_txpwr_ctrl_bb_defs_b);
306
307 static const struct rtw89_reg5_def rtw8852c_tssi_txpwr_ctrl_bb_he_tb_defs_a[] = {
308         RTW89_DECL_RFK_WM(0x58a0, 0xffffffff, 0x000000fe),
309         RTW89_DECL_RFK_WM(0x58e4, 0x0000007f, 0x1f),
310 };
311
312 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_txpwr_ctrl_bb_he_tb_defs_a);
313
314 static const struct rtw89_reg5_def rtw8852c_tssi_txpwr_ctrl_bb_he_tb_defs_b[] = {
315         RTW89_DECL_RFK_WM(0x78a0, 0xffffffff, 0x000000fe),
316         RTW89_DECL_RFK_WM(0x78e4, 0x0000007f, 0x1f),
317 };
318
319 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_txpwr_ctrl_bb_he_tb_defs_b);
320
321 static const struct rtw89_reg5_def rtw8852c_tssi_dck_defs_a[] = {
322         RTW89_DECL_RFK_WM(0x58c4, 0x3ffc0000, 0x0),
323         RTW89_DECL_RFK_WM(0x58c8, 0x00000fff, 0x0),
324         RTW89_DECL_RFK_WM(0x58c8, 0x00fff000, 0x0),
325 };
326
327 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_dck_defs_a);
328
329 static const struct rtw89_reg5_def rtw8852c_tssi_dck_defs_b[] = {
330         RTW89_DECL_RFK_WM(0x78c4, 0x3ffc0000, 0x0),
331         RTW89_DECL_RFK_WM(0x78c8, 0x00000fff, 0x0),
332         RTW89_DECL_RFK_WM(0x78c8, 0x00fff000, 0x0),
333 };
334
335 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_dck_defs_b);
336
337 static const struct rtw89_reg5_def rtw8852c_tssi_dck_defs_2g_a[] = {
338         RTW89_DECL_RFK_WM(0x580c, 0x0fff0000, 0x000),
339         RTW89_DECL_RFK_WM(0x5814, 0x003ff000, 0x1af),
340         RTW89_DECL_RFK_WM(0x5814, 0x18000000, 0x0),
341 };
342
343 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_dck_defs_2g_a);
344
345 static const struct rtw89_reg5_def rtw8852c_tssi_dck_defs_2g_b[] = {
346         RTW89_DECL_RFK_WM(0x780c, 0x0fff0000, 0x000),
347         RTW89_DECL_RFK_WM(0x7814, 0x003ff000, 0x1af),
348         RTW89_DECL_RFK_WM(0x7814, 0x18000000, 0x0),
349 };
350
351 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_dck_defs_2g_b);
352
353 static const struct rtw89_reg5_def rtw8852c_tssi_dck_defs_5g_a[] = {
354         RTW89_DECL_RFK_WM(0x580c, 0x0fff0000, 0x000),
355         RTW89_DECL_RFK_WM(0x5814, 0x00001000, 0x1),
356         RTW89_DECL_RFK_WM(0x5814, 0x0003c000, 0xb),
357         RTW89_DECL_RFK_WM(0x5814, 0x00002000, 0x1),
358         RTW89_DECL_RFK_WM(0x5814, 0x003c0000, 0x6),
359         RTW89_DECL_RFK_WM(0x5814, 0x18000000, 0x0),
360 };
361
362 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_dck_defs_5g_a);
363
364 static const struct rtw89_reg5_def rtw8852c_tssi_dck_defs_5g_b[] = {
365         RTW89_DECL_RFK_WM(0x780c, 0x0fff0000, 0x000),
366         RTW89_DECL_RFK_WM(0x7814, 0x00001000, 0x1),
367         RTW89_DECL_RFK_WM(0x7814, 0x0003c000, 0xb),
368         RTW89_DECL_RFK_WM(0x7814, 0x00002000, 0x1),
369         RTW89_DECL_RFK_WM(0x7814, 0x003c0000, 0x6),
370         RTW89_DECL_RFK_WM(0x7814, 0x18000000, 0x0),
371 };
372
373 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_dck_defs_5g_b);
374
375 static const struct rtw89_reg5_def rtw8852c_tssi_set_bbgain_split_a[] = {
376         RTW89_DECL_RFK_WM(0x5818, 0x08000000, 0x1),
377         RTW89_DECL_RFK_WM(0x58d4, 0xf0000000, 0x7),
378         RTW89_DECL_RFK_WM(0x58f0, 0x000c0000, 0x1),
379         RTW89_DECL_RFK_WM(0x58f0, 0xfff00000, 0x400),
380 };
381
382 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_set_bbgain_split_a);
383
384 static const struct rtw89_reg5_def rtw8852c_tssi_set_bbgain_split_b[] = {
385         RTW89_DECL_RFK_WM(0x7818, 0x08000000, 0x1),
386         RTW89_DECL_RFK_WM(0x78d4, 0xf0000000, 0x7),
387         RTW89_DECL_RFK_WM(0x78f0, 0x000c0000, 0x1),
388         RTW89_DECL_RFK_WM(0x78f0, 0xfff00000, 0x400),
389 };
390
391 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_set_bbgain_split_b);
392
393 static const struct rtw89_reg5_def rtw8852c_tssi_slope_cal_org_defs_2g_a[] = {
394         RTW89_DECL_RFK_WM(0x5608, 0x07ffffff, 0x0201008),
395         RTW89_DECL_RFK_WM(0x560c, 0x07ffffff, 0x0201008),
396         RTW89_DECL_RFK_WM(0x5610, 0x07ffffff, 0x0201020),
397         RTW89_DECL_RFK_WM(0x5614, 0x07ffffff, 0x0201008),
398         RTW89_DECL_RFK_WM(0x5618, 0x07ffffff, 0x0801008),
399         RTW89_DECL_RFK_WM(0x561c, 0x000001ff, 0x008),
400         RTW89_DECL_RFK_WM(0x561c, 0xffff0000, 0x0808),
401         RTW89_DECL_RFK_WM(0x5620, 0xffffffff, 0x08080808),
402         RTW89_DECL_RFK_WM(0x5624, 0xffffffff, 0x0808081e),
403         RTW89_DECL_RFK_WM(0x5628, 0xffffffff, 0x08080808),
404         RTW89_DECL_RFK_WM(0x562c, 0x0000ffff, 0x081d),
405         RTW89_DECL_RFK_WM(0x581c, 0x00100000, 0x1),
406 };
407
408 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_slope_cal_org_defs_2g_a);
409
410 static const struct rtw89_reg5_def rtw8852c_tssi_slope_cal_org_defs_2g_b[] = {
411         RTW89_DECL_RFK_WM(0x7608, 0x07ffffff, 0x0201008),
412         RTW89_DECL_RFK_WM(0x760c, 0x07ffffff, 0x0201008),
413         RTW89_DECL_RFK_WM(0x7610, 0x07ffffff, 0x0204020),
414         RTW89_DECL_RFK_WM(0x7614, 0x07ffffff, 0x0201008),
415         RTW89_DECL_RFK_WM(0x7618, 0x07ffffff, 0x0801008),
416         RTW89_DECL_RFK_WM(0x761c, 0x000001ff, 0x020),
417         RTW89_DECL_RFK_WM(0x761c, 0xffff0000, 0x0808),
418         RTW89_DECL_RFK_WM(0x7620, 0xffffffff, 0x08080808),
419         RTW89_DECL_RFK_WM(0x7624, 0xffffffff, 0x08081e21),
420         RTW89_DECL_RFK_WM(0x7628, 0xffffffff, 0x08080808),
421         RTW89_DECL_RFK_WM(0x762c, 0x0000ffff, 0x1d23),
422         RTW89_DECL_RFK_WM(0x781c, 0x00100000, 0x1),
423 };
424
425 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_slope_cal_org_defs_2g_b);
426
427 static const struct rtw89_reg5_def rtw8852c_tssi_slope_cal_org_defs_5g_a[] = {
428         RTW89_DECL_RFK_WM(0x5608, 0x07ffffff, 0x0201008),
429         RTW89_DECL_RFK_WM(0x560c, 0x07ffffff, 0x0201008),
430         RTW89_DECL_RFK_WM(0x5610, 0x07ffffff, 0x0201008),
431         RTW89_DECL_RFK_WM(0x5614, 0x07ffffff, 0x0201008),
432         RTW89_DECL_RFK_WM(0x5618, 0x07ffffff, 0x0201008),
433         RTW89_DECL_RFK_WM(0x561c, 0x000001ff, 0x008),
434         RTW89_DECL_RFK_WM(0x561c, 0xffff0000, 0x0808),
435         RTW89_DECL_RFK_WM(0x5620, 0xffffffff, 0x08080808),
436         RTW89_DECL_RFK_WM(0x5624, 0xffffffff, 0x08080808),
437         RTW89_DECL_RFK_WM(0x5628, 0xffffffff, 0x08080808),
438         RTW89_DECL_RFK_WM(0x562c, 0x0000ffff, 0x0808),
439         RTW89_DECL_RFK_WM(0x581c, 0x00100000, 0x0),
440 };
441
442 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_slope_cal_org_defs_5g_a);
443
444 static const struct rtw89_reg5_def rtw8852c_tssi_slope_cal_org_defs_5g_b[] = {
445         RTW89_DECL_RFK_WM(0x7608, 0x07ffffff, 0x0201008),
446         RTW89_DECL_RFK_WM(0x760c, 0x07ffffff, 0x0201008),
447         RTW89_DECL_RFK_WM(0x7610, 0x07ffffff, 0x0201008),
448         RTW89_DECL_RFK_WM(0x7614, 0x07ffffff, 0x0201008),
449         RTW89_DECL_RFK_WM(0x7618, 0x07ffffff, 0x0201008),
450         RTW89_DECL_RFK_WM(0x761c, 0x000001ff, 0x008),
451         RTW89_DECL_RFK_WM(0x761c, 0xffff0000, 0x0808),
452         RTW89_DECL_RFK_WM(0x7620, 0xffffffff, 0x08080808),
453         RTW89_DECL_RFK_WM(0x7624, 0xffffffff, 0x08080808),
454         RTW89_DECL_RFK_WM(0x7628, 0xffffffff, 0x08080808),
455         RTW89_DECL_RFK_WM(0x762c, 0x0000ffff, 0x0808),
456         RTW89_DECL_RFK_WM(0x781c, 0x00100000, 0x0),
457 };
458
459 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_slope_cal_org_defs_5g_b);
460
461 static const struct rtw89_reg5_def rtw8852c_tssi_set_aligk_default_defs_2g_a[] = {
462         RTW89_DECL_RFK_WM(0x5604, 0x80000000, 0x1),
463         RTW89_DECL_RFK_WM(0x5600, 0x3fffffff, 0x000000),
464         RTW89_DECL_RFK_WM(0x5604, 0x003fffff, 0x2d2721),
465         RTW89_DECL_RFK_WM(0x5630, 0x3fffffff, 0x00000000),
466         RTW89_DECL_RFK_WM(0x5634, 0x000003ff, 0x000),
467         RTW89_DECL_RFK_WM(0x5634, 0x000ffc00, 0x3b8),
468         RTW89_DECL_RFK_WM(0x5634, 0x3ff00000, 0x3d2),
469         RTW89_DECL_RFK_WM(0x5638, 0x000003ff, 0x042),
470         RTW89_DECL_RFK_WM(0x5638, 0x000ffc00, 0x06b),
471         RTW89_DECL_RFK_WM(0x563c, 0x3fffffff, 0x00000000),
472         RTW89_DECL_RFK_WM(0x5640, 0x000003ff, 0x000),
473         RTW89_DECL_RFK_WM(0x5640, 0x000ffc00, 0x3bc),
474         RTW89_DECL_RFK_WM(0x5640, 0x3ff00000, 0x3d6),
475         RTW89_DECL_RFK_WM(0x5644, 0x000003ff, 0x03e),
476         RTW89_DECL_RFK_WM(0x5644, 0x000ffc00, 0x06b),
477 };
478
479 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_set_aligk_default_defs_2g_a);
480
481 static const struct rtw89_reg5_def rtw8852c_tssi_set_aligk_default_defs_2g_b[] = {
482         RTW89_DECL_RFK_WM(0x7604, 0x80000000, 0x1),
483         RTW89_DECL_RFK_WM(0x7600, 0x3fffffff, 0x000000),
484         RTW89_DECL_RFK_WM(0x7604, 0x003fffff, 0x2d2721),
485         RTW89_DECL_RFK_WM(0x7630, 0x3fffffff, 0x00000000),
486         RTW89_DECL_RFK_WM(0x7634, 0x000003ff, 0x000),
487         RTW89_DECL_RFK_WM(0x7634, 0x000ffc00, 0x3c0),
488         RTW89_DECL_RFK_WM(0x7634, 0x3ff00000, 0x3da),
489         RTW89_DECL_RFK_WM(0x7638, 0x000003ff, 0x002),
490         RTW89_DECL_RFK_WM(0x7638, 0x000ffc00, 0x071),
491         RTW89_DECL_RFK_WM(0x763c, 0x3fffffff, 0x00000000),
492         RTW89_DECL_RFK_WM(0x7640, 0x000003ff, 0x000),
493         RTW89_DECL_RFK_WM(0x7640, 0x000ffc00, 0x3c8),
494         RTW89_DECL_RFK_WM(0x7640, 0x3ff00000, 0x3e2),
495         RTW89_DECL_RFK_WM(0x7644, 0x000003ff, 0x00c),
496         RTW89_DECL_RFK_WM(0x7644, 0x000ffc00, 0x071),
497 };
498
499 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_set_aligk_default_defs_2g_b);
500
501 static const struct rtw89_reg5_def rtw8852c_tssi_set_aligk_default_defs_5g_a[] = {
502         RTW89_DECL_RFK_WM(0x5604, 0x80000000, 0x1),
503         RTW89_DECL_RFK_WM(0x5600, 0x3fffffff, 0x000000),
504         RTW89_DECL_RFK_WM(0x5604, 0x003fffff, 0x312600),
505         RTW89_DECL_RFK_WM(0x5630, 0x3fffffff, 0x00000000),
506         RTW89_DECL_RFK_WM(0x5634, 0x000003ff, 0x000),
507         RTW89_DECL_RFK_WM(0x5634, 0x000ffc00, 0x000),
508         RTW89_DECL_RFK_WM(0x5634, 0x3ff00000, 0x3e9),
509         RTW89_DECL_RFK_WM(0x5638, 0x000003ff, 0x039),
510         RTW89_DECL_RFK_WM(0x5638, 0x000ffc00, 0x07d),
511         RTW89_DECL_RFK_WM(0x563c, 0x3fffffff, 0x00000000),
512         RTW89_DECL_RFK_WM(0x5640, 0x000003ff, 0x000),
513         RTW89_DECL_RFK_WM(0x5640, 0x000ffc00, 0x000),
514         RTW89_DECL_RFK_WM(0x5640, 0x3ff00000, 0x000),
515         RTW89_DECL_RFK_WM(0x5644, 0x000003ff, 0x000),
516         RTW89_DECL_RFK_WM(0x5644, 0x000ffc00, 0x000),
517 };
518
519 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_set_aligk_default_defs_5g_a);
520
521 static const struct rtw89_reg5_def rtw8852c_tssi_set_aligk_default_defs_5g_b[] = {
522         RTW89_DECL_RFK_WM(0x7604, 0x80000000, 0x1),
523         RTW89_DECL_RFK_WM(0x7600, 0x3fffffff, 0x000000),
524         RTW89_DECL_RFK_WM(0x7604, 0x003fffff, 0x312600),
525         RTW89_DECL_RFK_WM(0x7630, 0x3fffffff, 0x00000000),
526         RTW89_DECL_RFK_WM(0x7634, 0x000003ff, 0x000),
527         RTW89_DECL_RFK_WM(0x7634, 0x000ffc00, 0x000),
528         RTW89_DECL_RFK_WM(0x7634, 0x3ff00000, 0x3e9),
529         RTW89_DECL_RFK_WM(0x7638, 0x000003ff, 0x039),
530         RTW89_DECL_RFK_WM(0x7638, 0x000ffc00, 0x07d),
531         RTW89_DECL_RFK_WM(0x763c, 0x3fffffff, 0x00000000),
532         RTW89_DECL_RFK_WM(0x7640, 0x000003ff, 0x000),
533         RTW89_DECL_RFK_WM(0x7640, 0x000ffc00, 0x000),
534         RTW89_DECL_RFK_WM(0x7640, 0x3ff00000, 0x000),
535         RTW89_DECL_RFK_WM(0x7644, 0x000003ff, 0x000),
536         RTW89_DECL_RFK_WM(0x7644, 0x000ffc00, 0x000),
537 };
538
539 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_set_aligk_default_defs_5g_b);
540
541 static const struct rtw89_reg5_def rtw8852c_tssi_set_aligk_default_defs_6g_a[] = {
542         RTW89_DECL_RFK_WM(0x5604, 0x80000000, 0x1),
543         RTW89_DECL_RFK_WM(0x5600, 0x3fffffff, 0x000000),
544         RTW89_DECL_RFK_WM(0x5604, 0x003fffff, 0x312600),
545         RTW89_DECL_RFK_WM(0x5630, 0x3fffffff, 0x00000000),
546         RTW89_DECL_RFK_WM(0x5634, 0x000003ff, 0x000),
547         RTW89_DECL_RFK_WM(0x5634, 0x000ffc00, 0x000),
548         RTW89_DECL_RFK_WM(0x5634, 0x3ff00000, 0x3e9),
549         RTW89_DECL_RFK_WM(0x5638, 0x000003ff, 0x039),
550         RTW89_DECL_RFK_WM(0x5638, 0x000ffc00, 0x080),
551         RTW89_DECL_RFK_WM(0x563c, 0x3fffffff, 0x00000000),
552         RTW89_DECL_RFK_WM(0x5640, 0x000003ff, 0x000),
553         RTW89_DECL_RFK_WM(0x5640, 0x000ffc00, 0x000),
554         RTW89_DECL_RFK_WM(0x5640, 0x3ff00000, 0x000),
555         RTW89_DECL_RFK_WM(0x5644, 0x000003ff, 0x000),
556         RTW89_DECL_RFK_WM(0x5644, 0x000ffc00, 0x000),
557 };
558
559 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_set_aligk_default_defs_6g_a);
560
561 static const struct rtw89_reg5_def rtw8852c_tssi_set_aligk_default_defs_6g_b[] = {
562         RTW89_DECL_RFK_WM(0x7604, 0x80000000, 0x1),
563         RTW89_DECL_RFK_WM(0x7600, 0x3fffffff, 0x000000),
564         RTW89_DECL_RFK_WM(0x7604, 0x003fffff, 0x312600),
565         RTW89_DECL_RFK_WM(0x7630, 0x3fffffff, 0x00000000),
566         RTW89_DECL_RFK_WM(0x7634, 0x000003ff, 0x000),
567         RTW89_DECL_RFK_WM(0x7634, 0x000ffc00, 0x000),
568         RTW89_DECL_RFK_WM(0x7634, 0x3ff00000, 0x3e9),
569         RTW89_DECL_RFK_WM(0x7638, 0x000003ff, 0x039),
570         RTW89_DECL_RFK_WM(0x7638, 0x000ffc00, 0x080),
571         RTW89_DECL_RFK_WM(0x763c, 0x3fffffff, 0x00000000),
572         RTW89_DECL_RFK_WM(0x7640, 0x000003ff, 0x000),
573         RTW89_DECL_RFK_WM(0x7640, 0x000ffc00, 0x000),
574         RTW89_DECL_RFK_WM(0x7640, 0x3ff00000, 0x000),
575         RTW89_DECL_RFK_WM(0x7644, 0x000003ff, 0x000),
576         RTW89_DECL_RFK_WM(0x7644, 0x000ffc00, 0x000),
577 };
578
579 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_set_aligk_default_defs_6g_b);
580
581 static const struct rtw89_reg5_def rtw8852c_tssi_slope_defs_a[] = {
582         RTW89_DECL_RFK_WM(0x5820, 0x80000000, 0x0),
583         RTW89_DECL_RFK_WM(0x5818, 0x10000000, 0x0),
584         RTW89_DECL_RFK_WM(0x5814, 0x00000800, 0x1),
585         RTW89_DECL_RFK_WM(0x581c, 0x20000000, 0x1),
586         RTW89_DECL_RFK_WM(0x58e8, 0x0000003f, 0x0f),
587         RTW89_DECL_RFK_WM(0x581c, 0x000003ff, 0x280),
588         RTW89_DECL_RFK_WM(0x581c, 0x000ffc00, 0x200),
589         RTW89_DECL_RFK_WM(0x58b8, 0x007f0000, 0x00),
590         RTW89_DECL_RFK_WM(0x58b8, 0x7f000000, 0x00),
591         RTW89_DECL_RFK_WM(0x58b4, 0x7f000000, 0x0a),
592         RTW89_DECL_RFK_WM(0x58b8, 0x0000007f, 0x28),
593         RTW89_DECL_RFK_WM(0x58b8, 0x00007f00, 0x76),
594         RTW89_DECL_RFK_WM(0x5810, 0x20000000, 0x0),
595         RTW89_DECL_RFK_WM(0x5814, 0x20000000, 0x1),
596         RTW89_DECL_RFK_WM(0x580c, 0x10000000, 0x1),
597         RTW89_DECL_RFK_WM(0x580c, 0x40000000, 0x1),
598         RTW89_DECL_RFK_WM(0x5834, 0x0003ffff, 0x115f2),
599         RTW89_DECL_RFK_WM(0x5834, 0x3ffc0000, 0x000),
600         RTW89_DECL_RFK_WM(0x5838, 0x00000fff, 0x121),
601         RTW89_DECL_RFK_WM(0x5838, 0x003ff000, 0x000),
602         RTW89_DECL_RFK_WM(0x5854, 0x0003ffff, 0x115f2),
603         RTW89_DECL_RFK_WM(0x5854, 0x3ffc0000, 0x000),
604         RTW89_DECL_RFK_WM(0x5858, 0x00000fff, 0x121),
605         RTW89_DECL_RFK_WM(0x5858, 0x003ff000, 0x000),
606         RTW89_DECL_RFK_WM(0x5824, 0x0003ffff, 0x115f2),
607         RTW89_DECL_RFK_WM(0x5824, 0x3ffc0000, 0x000),
608         RTW89_DECL_RFK_WM(0x5828, 0x00000fff, 0x121),
609         RTW89_DECL_RFK_WM(0x5828, 0x003ff000, 0x000),
610         RTW89_DECL_RFK_WM(0x582c, 0x0003ffff, 0x115f2),
611         RTW89_DECL_RFK_WM(0x582c, 0x3ffc0000, 0x000),
612         RTW89_DECL_RFK_WM(0x5830, 0x00000fff, 0x121),
613         RTW89_DECL_RFK_WM(0x5830, 0x003ff000, 0x000),
614         RTW89_DECL_RFK_WM(0x583c, 0x0003ffff, 0x115f2),
615         RTW89_DECL_RFK_WM(0x583c, 0x3ffc0000, 0x000),
616         RTW89_DECL_RFK_WM(0x5840, 0x00000fff, 0x121),
617         RTW89_DECL_RFK_WM(0x5840, 0x003ff000, 0x000),
618         RTW89_DECL_RFK_WM(0x5844, 0x0003ffff, 0x115f2),
619         RTW89_DECL_RFK_WM(0x5844, 0x3ffc0000, 0x000),
620         RTW89_DECL_RFK_WM(0x5848, 0x00000fff, 0x121),
621         RTW89_DECL_RFK_WM(0x5848, 0x003ff000, 0x000),
622         RTW89_DECL_RFK_WM(0x584c, 0x0003ffff, 0x115f2),
623         RTW89_DECL_RFK_WM(0x584c, 0x3ffc0000, 0x000),
624         RTW89_DECL_RFK_WM(0x5850, 0x00000fff, 0x121),
625         RTW89_DECL_RFK_WM(0x5850, 0x003ff000, 0x000),
626         RTW89_DECL_RFK_WM(0x585c, 0x0003ffff, 0x115f2),
627         RTW89_DECL_RFK_WM(0x585c, 0x3ffc0000, 0x000),
628         RTW89_DECL_RFK_WM(0x5860, 0x00000fff, 0x121),
629         RTW89_DECL_RFK_WM(0x5860, 0x003ff000, 0x000),
630 };
631
632 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_slope_defs_a);
633
634 static const struct rtw89_reg5_def rtw8852c_tssi_slope_defs_b[] = {
635         RTW89_DECL_RFK_WM(0x7820, 0x80000000, 0x0),
636         RTW89_DECL_RFK_WM(0x7818, 0x10000000, 0x0),
637         RTW89_DECL_RFK_WM(0x7814, 0x00000800, 0x1),
638         RTW89_DECL_RFK_WM(0x781c, 0x20000000, 0x1),
639         RTW89_DECL_RFK_WM(0x78e8, 0x0000003f, 0x0f),
640         RTW89_DECL_RFK_WM(0x781c, 0x000003ff, 0x280),
641         RTW89_DECL_RFK_WM(0x781c, 0x000ffc00, 0x200),
642         RTW89_DECL_RFK_WM(0x78b8, 0x007f0000, 0x00),
643         RTW89_DECL_RFK_WM(0x78b8, 0x7f000000, 0x00),
644         RTW89_DECL_RFK_WM(0x78b4, 0x7f000000, 0x0a),
645         RTW89_DECL_RFK_WM(0x78b8, 0x0000007f, 0x28),
646         RTW89_DECL_RFK_WM(0x78b8, 0x00007f00, 0x76),
647         RTW89_DECL_RFK_WM(0x7810, 0x20000000, 0x0),
648         RTW89_DECL_RFK_WM(0x7814, 0x20000000, 0x1),
649         RTW89_DECL_RFK_WM(0x780c, 0x10000000, 0x1),
650         RTW89_DECL_RFK_WM(0x780c, 0x40000000, 0x1),
651         RTW89_DECL_RFK_WM(0x7834, 0x0003ffff, 0x115f2),
652         RTW89_DECL_RFK_WM(0x7834, 0x3ffc0000, 0x000),
653         RTW89_DECL_RFK_WM(0x7838, 0x00000fff, 0x121),
654         RTW89_DECL_RFK_WM(0x7838, 0x003ff000, 0x000),
655         RTW89_DECL_RFK_WM(0x7854, 0x0003ffff, 0x115f2),
656         RTW89_DECL_RFK_WM(0x7854, 0x3ffc0000, 0x000),
657         RTW89_DECL_RFK_WM(0x7858, 0x00000fff, 0x121),
658         RTW89_DECL_RFK_WM(0x7858, 0x003ff000, 0x000),
659         RTW89_DECL_RFK_WM(0x7824, 0x0003ffff, 0x115f2),
660         RTW89_DECL_RFK_WM(0x7824, 0x3ffc0000, 0x000),
661         RTW89_DECL_RFK_WM(0x7828, 0x00000fff, 0x121),
662         RTW89_DECL_RFK_WM(0x7828, 0x003ff000, 0x000),
663         RTW89_DECL_RFK_WM(0x782c, 0x0003ffff, 0x115f2),
664         RTW89_DECL_RFK_WM(0x782c, 0x3ffc0000, 0x000),
665         RTW89_DECL_RFK_WM(0x7830, 0x00000fff, 0x121),
666         RTW89_DECL_RFK_WM(0x7830, 0x003ff000, 0x000),
667         RTW89_DECL_RFK_WM(0x783c, 0x0003ffff, 0x115f2),
668         RTW89_DECL_RFK_WM(0x783c, 0x3ffc0000, 0x000),
669         RTW89_DECL_RFK_WM(0x7840, 0x00000fff, 0x121),
670         RTW89_DECL_RFK_WM(0x7840, 0x003ff000, 0x000),
671         RTW89_DECL_RFK_WM(0x7844, 0x0003ffff, 0x115f2),
672         RTW89_DECL_RFK_WM(0x7844, 0x3ffc0000, 0x000),
673         RTW89_DECL_RFK_WM(0x7848, 0x00000fff, 0x121),
674         RTW89_DECL_RFK_WM(0x7848, 0x003ff000, 0x000),
675         RTW89_DECL_RFK_WM(0x784c, 0x0003ffff, 0x115f2),
676         RTW89_DECL_RFK_WM(0x784c, 0x3ffc0000, 0x000),
677         RTW89_DECL_RFK_WM(0x7850, 0x00000fff, 0x121),
678         RTW89_DECL_RFK_WM(0x7850, 0x003ff000, 0x000),
679         RTW89_DECL_RFK_WM(0x785c, 0x0003ffff, 0x115f2),
680         RTW89_DECL_RFK_WM(0x785c, 0x3ffc0000, 0x000),
681         RTW89_DECL_RFK_WM(0x7860, 0x00000fff, 0x121),
682         RTW89_DECL_RFK_WM(0x7860, 0x003ff000, 0x000),
683 };
684
685 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_slope_defs_b);
686
687 static const struct rtw89_reg5_def rtw8852c_tssi_run_slope_defs_a[] = {
688         RTW89_DECL_RFK_WM(0x5820, 0x80000000, 0x0),
689         RTW89_DECL_RFK_WM(0x5820, 0x80000000, 0x1),
690 };
691
692 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_run_slope_defs_a);
693
694 static const struct rtw89_reg5_def rtw8852c_tssi_run_slope_defs_b[] = {
695         RTW89_DECL_RFK_WM(0x7820, 0x80000000, 0x0),
696         RTW89_DECL_RFK_WM(0x7820, 0x80000000, 0x1),
697 };
698
699 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_run_slope_defs_b);
700
701 static const struct rtw89_reg5_def rtw8852c_tssi_track_defs_a[] = {
702         RTW89_DECL_RFK_WM(0x5820, 0x80000000, 0x0),
703         RTW89_DECL_RFK_WM(0x5818, 0x10000000, 0x0),
704         RTW89_DECL_RFK_WM(0x5814, 0x00000800, 0x0),
705         RTW89_DECL_RFK_WM(0x581c, 0x20000000, 0x1),
706         RTW89_DECL_RFK_WM(0x5864, 0x000003ff, 0x1ff),
707         RTW89_DECL_RFK_WM(0x5864, 0x000ffc00, 0x200),
708         RTW89_DECL_RFK_WM(0x5820, 0x00000fff, 0x080),
709         RTW89_DECL_RFK_WM(0x5814, 0x01000000, 0x0),
710 };
711
712 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_track_defs_a);
713
714 static const struct rtw89_reg5_def rtw8852c_tssi_track_defs_b[] = {
715         RTW89_DECL_RFK_WM(0x7820, 0x80000000, 0x0),
716         RTW89_DECL_RFK_WM(0x7818, 0x10000000, 0x0),
717         RTW89_DECL_RFK_WM(0x7814, 0x00000800, 0x0),
718         RTW89_DECL_RFK_WM(0x781c, 0x20000000, 0x1),
719         RTW89_DECL_RFK_WM(0x7864, 0x000003ff, 0x1ff),
720         RTW89_DECL_RFK_WM(0x7864, 0x000ffc00, 0x200),
721         RTW89_DECL_RFK_WM(0x7820, 0x00000fff, 0x080),
722         RTW89_DECL_RFK_WM(0x7814, 0x01000000, 0x0),
723 };
724
725 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_track_defs_b);
726
727 static const struct rtw89_reg5_def rtw8852c_tssi_txagc_ofst_mv_avg_defs_a[] = {
728         RTW89_DECL_RFK_WM(0x58e4, 0x00003800, 0x1),
729         RTW89_DECL_RFK_WM(0x58e4, 0x00004000, 0x0),
730         RTW89_DECL_RFK_WM(0x58e4, 0x00008000, 0x1),
731         RTW89_DECL_RFK_WM(0x58e4, 0x000f0000, 0x0),
732         RTW89_DECL_RFK_WM(0x58e8, 0x0000003f, 0x03),
733 };
734
735 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_txagc_ofst_mv_avg_defs_a);
736
737 static const struct rtw89_reg5_def rtw8852c_tssi_txagc_ofst_mv_avg_defs_b[] = {
738         RTW89_DECL_RFK_WM(0x78e4, 0x00003800, 0x1),
739         RTW89_DECL_RFK_WM(0x78e4, 0x00004000, 0x0),
740         RTW89_DECL_RFK_WM(0x78e4, 0x00008000, 0x1),
741         RTW89_DECL_RFK_WM(0x78e4, 0x000f0000, 0x0),
742         RTW89_DECL_RFK_WM(0x78e8, 0x0000003f, 0x03),
743 };
744
745 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_txagc_ofst_mv_avg_defs_b);
746
747 static const struct rtw89_reg5_def rtw8852c_tssi_enable_defs_a[] = {
748         RTW89_DECL_RFK_WM(0x58e4, 0x00004000, 0x0),
749         RTW89_DECL_RFK_WM(0x5820, 0x80000000, 0x0),
750         RTW89_DECL_RFK_WM(0x5820, 0x80000000, 0x1),
751         RTW89_DECL_RFK_WRF(0x0, 0x10055, 0x00080, 0x1),
752         RTW89_DECL_RFK_WM(0x5818, 0x10000000, 0x1),
753 };
754
755 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_enable_defs_a);
756
757 static const struct rtw89_reg5_def rtw8852c_tssi_enable_defs_b[] = {
758         RTW89_DECL_RFK_WM(0x78e4, 0x00004000, 0x0),
759         RTW89_DECL_RFK_WM(0x7820, 0x80000000, 0x0),
760         RTW89_DECL_RFK_WM(0x7820, 0x80000000, 0x1),
761         RTW89_DECL_RFK_WRF(0x1, 0x10055, 0x00080, 0x1),
762         RTW89_DECL_RFK_WM(0x7818, 0x10000000, 0x1),
763 };
764
765 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_enable_defs_b);
766
767 static const struct rtw89_reg5_def rtw8852c_tssi_disable_defs_a[] = {
768         RTW89_DECL_RFK_WM(0x5820, 0x80000000, 0x00000000),
769         RTW89_DECL_RFK_WM(0x5818, 0x10000000, 0x00000000),
770         RTW89_DECL_RFK_WM(0x58e4, 0x00004000, 0x00000001),
771 };
772
773 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_disable_defs_a);
774
775 static const struct rtw89_reg5_def rtw8852c_tssi_disable_defs_b[] = {
776         RTW89_DECL_RFK_WM(0x7820, 0x80000000, 0x00000000),
777         RTW89_DECL_RFK_WM(0x7818, 0x10000000, 0x00000000),
778         RTW89_DECL_RFK_WM(0x78e4, 0x00004000, 0x00000001),
779 };
780
781 RTW89_DECLARE_RFK_TBL(rtw8852c_tssi_disable_defs_b);