xref: /linux/drivers/net/wireless/realtek/rtw89/rtw8922d.h (revision 91a4855d6c03e770e42f17c798a36a3c46e63de2)
1 /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2 /* Copyright(c) 2026  Realtek Corporation
3  */
4 
5 #ifndef __RTW89_8922D_H__
6 #define __RTW89_8922D_H__
7 
8 #include "core.h"
9 
10 #define RF_PATH_NUM_8922D 2
11 #define BB_PATH_NUM_8922D 2
12 
13 struct rtw8922d_tssi_offset {
14 	u8 cck_tssi[TSSI_CCK_CH_GROUP_NUM];
15 	u8 bw40_tssi[TSSI_MCS_2G_CH_GROUP_NUM];
16 	u8 rsvd[7];
17 	u8 bw40_1s_tssi_5g[TSSI_MCS_5G_CH_GROUP_NUM];
18 	u8 bw_diff_5g[10];
19 } __packed;
20 
21 struct rtw8922d_tssi_offset_6g {
22 	u8 bw40_1s_tssi_6g[TSSI_MCS_6G_CH_GROUP_NUM];
23 	u8 rsvd[0xa];
24 } __packed;
25 
26 struct rtw8922d_rx_gain {
27 	u8 _2g_ofdm;
28 	u8 _2g_cck;
29 	u8 _5g_low;
30 	u8 _5g_mid;
31 	u8 _5g_high;
32 } __packed;
33 
34 struct rtw8922d_rx_gain_6g {
35 	u8 _6g_l0;
36 	u8 _6g_l1;
37 	u8 _6g_m0;
38 	u8 _6g_m1;
39 	u8 _6g_h0;
40 	u8 _6g_h1;
41 	u8 _6g_uh0;
42 	u8 _6g_uh1;
43 } __packed;
44 
45 struct rtw8922d_efuse {
46 	u8 country_code[2];
47 	u8 rsvd[0xe];
48 	struct rtw8922d_tssi_offset path_a_tssi;
49 	struct rtw8922d_tssi_offset path_b_tssi;
50 	u8 rsvd1[0x54];
51 	u8 channel_plan;
52 	u8 xtal_k;
53 	u8 rsvd2[0x7];
54 	u8 board_info;
55 	u8 rsvd3[0x8];
56 	u8 rfe_type;
57 	u8 rsvd4[2];
58 	u8 bt_setting_2;
59 	u8 bt_setting_3;
60 	u8 rsvd4_2;
61 	u8 path_a_therm;
62 	u8 path_b_therm;
63 	u8 rsvd5[0x2];
64 	struct rtw8922d_rx_gain rx_gain_a;
65 	struct rtw8922d_rx_gain rx_gain_b;
66 	u8 rsvd6[0x18];
67 	struct rtw8922d_rx_gain rx_gain_a_2;
68 	struct rtw8922d_rx_gain rx_gain_b_2;
69 	struct rtw8922d_tssi_offset_6g path_a_tssi_6g;
70 	struct rtw8922d_tssi_offset_6g path_b_tssi_6g;
71 	struct rtw8922d_tssi_offset_6g path_c_tssi_6g;
72 	struct rtw8922d_tssi_offset_6g path_d_tssi_6g;
73 	struct rtw8922d_rx_gain_6g rx_gain_6g_a;
74 	struct rtw8922d_rx_gain_6g rx_gain_6g_b;
75 	u8 rsvd7[0x5a];
76 	struct rtw8922d_rx_gain_6g rx_gain_6g_a_2;
77 	struct rtw8922d_rx_gain_6g rx_gain_6g_b_2;
78 } __packed;
79 
80 extern const struct rtw89_chip_info rtw8922d_chip_info;
81 extern const struct rtw89_chip_variant rtw8922de_vs_variant;
82 
83 #endif
84