16d67aabdSBjoern A. Zeeb /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 26d67aabdSBjoern A. Zeeb /* Copyright(c) 2023 Realtek Corporation 36d67aabdSBjoern A. Zeeb */ 46d67aabdSBjoern A. Zeeb 56d67aabdSBjoern A. Zeeb #ifndef __RTW89_8922A_H__ 66d67aabdSBjoern A. Zeeb #define __RTW89_8922A_H__ 76d67aabdSBjoern A. Zeeb 86d67aabdSBjoern A. Zeeb #include "core.h" 96d67aabdSBjoern A. Zeeb 106d67aabdSBjoern A. Zeeb #define RF_PATH_NUM_8922A 2 116d67aabdSBjoern A. Zeeb #define BB_PATH_NUM_8922A 2 126d67aabdSBjoern A. Zeeb 136d67aabdSBjoern A. Zeeb struct rtw8922a_tssi_offset { 146d67aabdSBjoern A. Zeeb u8 cck_tssi[TSSI_CCK_CH_GROUP_NUM]; 156d67aabdSBjoern A. Zeeb u8 bw40_tssi[TSSI_MCS_2G_CH_GROUP_NUM]; 166d67aabdSBjoern A. Zeeb u8 rsvd[7]; 176d67aabdSBjoern A. Zeeb u8 bw40_1s_tssi_5g[TSSI_MCS_5G_CH_GROUP_NUM]; 186d67aabdSBjoern A. Zeeb u8 bw_diff_5g[10]; 196d67aabdSBjoern A. Zeeb } __packed; 206d67aabdSBjoern A. Zeeb 216d67aabdSBjoern A. Zeeb struct rtw8922a_rx_gain { 226d67aabdSBjoern A. Zeeb u8 _2g_ofdm; 236d67aabdSBjoern A. Zeeb u8 _2g_cck; 246d67aabdSBjoern A. Zeeb u8 _5g_low; 256d67aabdSBjoern A. Zeeb u8 _5g_mid; 266d67aabdSBjoern A. Zeeb u8 _5g_high; 276d67aabdSBjoern A. Zeeb } __packed; 286d67aabdSBjoern A. Zeeb 296d67aabdSBjoern A. Zeeb struct rtw8922a_rx_gain_6g { 306d67aabdSBjoern A. Zeeb u8 _6g_l0; 316d67aabdSBjoern A. Zeeb u8 _6g_l1; 326d67aabdSBjoern A. Zeeb u8 _6g_m0; 336d67aabdSBjoern A. Zeeb u8 _6g_m1; 346d67aabdSBjoern A. Zeeb u8 _6g_h0; 356d67aabdSBjoern A. Zeeb u8 _6g_h1; 366d67aabdSBjoern A. Zeeb u8 _6g_uh0; 376d67aabdSBjoern A. Zeeb u8 _6g_uh1; 386d67aabdSBjoern A. Zeeb } __packed; 396d67aabdSBjoern A. Zeeb 406d67aabdSBjoern A. Zeeb struct rtw8922a_efuse { 416d67aabdSBjoern A. Zeeb u8 country_code[2]; 426d67aabdSBjoern A. Zeeb u8 rsvd[0xe]; 436d67aabdSBjoern A. Zeeb struct rtw8922a_tssi_offset path_a_tssi; 446d67aabdSBjoern A. Zeeb struct rtw8922a_tssi_offset path_b_tssi; 456d67aabdSBjoern A. Zeeb u8 rsvd1[0x54]; 466d67aabdSBjoern A. Zeeb u8 channel_plan; 476d67aabdSBjoern A. Zeeb u8 xtal_k; 486d67aabdSBjoern A. Zeeb u8 rsvd2[0x7]; 496d67aabdSBjoern A. Zeeb u8 board_info; 506d67aabdSBjoern A. Zeeb u8 rsvd3[0x8]; 516d67aabdSBjoern A. Zeeb u8 rfe_type; 526d67aabdSBjoern A. Zeeb u8 rsvd4[0x5]; 536d67aabdSBjoern A. Zeeb u8 path_a_therm; 546d67aabdSBjoern A. Zeeb u8 path_b_therm; 556d67aabdSBjoern A. Zeeb u8 rsvd5[0x2]; 566d67aabdSBjoern A. Zeeb struct rtw8922a_rx_gain rx_gain_a; 576d67aabdSBjoern A. Zeeb struct rtw8922a_rx_gain rx_gain_b; 586d67aabdSBjoern A. Zeeb u8 rsvd6[0x22]; 596d67aabdSBjoern A. Zeeb u8 bw40_1s_tssi_6g_a[TSSI_MCS_6G_CH_GROUP_NUM]; 606d67aabdSBjoern A. Zeeb u8 rsvd7[0xa]; 616d67aabdSBjoern A. Zeeb u8 bw40_1s_tssi_6g_b[TSSI_MCS_6G_CH_GROUP_NUM]; 626d67aabdSBjoern A. Zeeb u8 rsvd8[0xa]; 636d67aabdSBjoern A. Zeeb u8 bw40_1s_tssi_6g_c[TSSI_MCS_6G_CH_GROUP_NUM]; 646d67aabdSBjoern A. Zeeb u8 rsvd9[0xa]; 656d67aabdSBjoern A. Zeeb u8 bw40_1s_tssi_6g_d[TSSI_MCS_6G_CH_GROUP_NUM]; 666d67aabdSBjoern A. Zeeb u8 rsvd10[0xa]; 676d67aabdSBjoern A. Zeeb struct rtw8922a_rx_gain_6g rx_gain_6g_a; 686d67aabdSBjoern A. Zeeb struct rtw8922a_rx_gain_6g rx_gain_6g_b; 696d67aabdSBjoern A. Zeeb } __packed; 706d67aabdSBjoern A. Zeeb 716d67aabdSBjoern A. Zeeb extern const struct rtw89_chip_info rtw8922a_chip_info; 72*df279a26SBjoern A. Zeeb extern const struct rtw89_chip_variant rtw8922ae_vs_variant; 736d67aabdSBjoern A. Zeeb 746d67aabdSBjoern A. Zeeb #endif 75