18e93258fSBjoern A. Zeeb /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */ 28e93258fSBjoern A. Zeeb /* Copyright(c) 2019-2022 Realtek Corporation 38e93258fSBjoern A. Zeeb */ 48e93258fSBjoern A. Zeeb 58e93258fSBjoern A. Zeeb #ifndef __RTW89_8852C_H__ 68e93258fSBjoern A. Zeeb #define __RTW89_8852C_H__ 78e93258fSBjoern A. Zeeb 88e93258fSBjoern A. Zeeb #include "core.h" 98e93258fSBjoern A. Zeeb 108e93258fSBjoern A. Zeeb #define RF_PATH_NUM_8852C 2 118e93258fSBjoern A. Zeeb #define BB_PATH_NUM_8852C 2 128e93258fSBjoern A. Zeeb 138e93258fSBjoern A. Zeeb struct rtw8852c_u_efuse { 148e93258fSBjoern A. Zeeb u8 rsvd[0x38]; 158e93258fSBjoern A. Zeeb u8 mac_addr[ETH_ALEN]; 168e93258fSBjoern A. Zeeb }; 178e93258fSBjoern A. Zeeb 188e93258fSBjoern A. Zeeb struct rtw8852c_e_efuse { 198e93258fSBjoern A. Zeeb u8 mac_addr[ETH_ALEN]; 208e93258fSBjoern A. Zeeb }; 218e93258fSBjoern A. Zeeb 228e93258fSBjoern A. Zeeb struct rtw8852c_tssi_offset { 238e93258fSBjoern A. Zeeb u8 cck_tssi[TSSI_CCK_CH_GROUP_NUM]; 248e93258fSBjoern A. Zeeb u8 bw40_tssi[TSSI_MCS_2G_CH_GROUP_NUM]; 258e93258fSBjoern A. Zeeb u8 rsvd[7]; 268e93258fSBjoern A. Zeeb u8 bw40_1s_tssi_5g[TSSI_MCS_5G_CH_GROUP_NUM]; 278e93258fSBjoern A. Zeeb } __packed; 288e93258fSBjoern A. Zeeb 298e93258fSBjoern A. Zeeb struct rtw8852c_efuse { 308e93258fSBjoern A. Zeeb u8 rsvd[0x210]; 318e93258fSBjoern A. Zeeb struct rtw8852c_tssi_offset path_a_tssi; 328e93258fSBjoern A. Zeeb u8 rsvd1[10]; 338e93258fSBjoern A. Zeeb struct rtw8852c_tssi_offset path_b_tssi; 348e93258fSBjoern A. Zeeb u8 rsvd2[94]; 358e93258fSBjoern A. Zeeb u8 channel_plan; 368e93258fSBjoern A. Zeeb u8 xtal_k; 378e93258fSBjoern A. Zeeb u8 rsvd3; 388e93258fSBjoern A. Zeeb u8 iqk_lck; 398e93258fSBjoern A. Zeeb u8 rsvd4[5]; 408e93258fSBjoern A. Zeeb u8 reg_setting:2; 418e93258fSBjoern A. Zeeb u8 tx_diversity:1; 428e93258fSBjoern A. Zeeb u8 rx_diversity:2; 438e93258fSBjoern A. Zeeb u8 ac_mode:1; 448e93258fSBjoern A. Zeeb u8 module_type:2; 458e93258fSBjoern A. Zeeb u8 rsvd5; 468e93258fSBjoern A. Zeeb u8 shared_ant:1; 478e93258fSBjoern A. Zeeb u8 coex_type:3; 488e93258fSBjoern A. Zeeb u8 ant_iso:1; 498e93258fSBjoern A. Zeeb u8 radio_on_off:1; 508e93258fSBjoern A. Zeeb u8 rsvd6:2; 518e93258fSBjoern A. Zeeb u8 eeprom_version; 528e93258fSBjoern A. Zeeb u8 customer_id; 538e93258fSBjoern A. Zeeb u8 tx_bb_swing_2g; 548e93258fSBjoern A. Zeeb u8 tx_bb_swing_5g; 558e93258fSBjoern A. Zeeb u8 tx_cali_pwr_trk_mode; 568e93258fSBjoern A. Zeeb u8 trx_path_selection; 578e93258fSBjoern A. Zeeb u8 rfe_type; 588e93258fSBjoern A. Zeeb u8 country_code[2]; 598e93258fSBjoern A. Zeeb u8 rsvd7[3]; 608e93258fSBjoern A. Zeeb u8 path_a_therm; 618e93258fSBjoern A. Zeeb u8 path_b_therm; 628e93258fSBjoern A. Zeeb u8 rsvd8[2]; 638e93258fSBjoern A. Zeeb u8 rx_gain_2g_ofdm; 648e93258fSBjoern A. Zeeb u8 rsvd9; 658e93258fSBjoern A. Zeeb u8 rx_gain_2g_cck; 668e93258fSBjoern A. Zeeb u8 rsvd10; 678e93258fSBjoern A. Zeeb u8 rx_gain_5g_low; 688e93258fSBjoern A. Zeeb u8 rsvd11; 698e93258fSBjoern A. Zeeb u8 rx_gain_5g_mid; 708e93258fSBjoern A. Zeeb u8 rsvd12; 718e93258fSBjoern A. Zeeb u8 rx_gain_5g_high; 728e93258fSBjoern A. Zeeb u8 rsvd13[35]; 738e93258fSBjoern A. Zeeb u8 bw40_1s_tssi_6g_a[TSSI_MCS_6G_CH_GROUP_NUM]; 748e93258fSBjoern A. Zeeb u8 rsvd14[10]; 758e93258fSBjoern A. Zeeb u8 bw40_1s_tssi_6g_b[TSSI_MCS_6G_CH_GROUP_NUM]; 768e93258fSBjoern A. Zeeb u8 rsvd15[110]; 778e93258fSBjoern A. Zeeb u8 channel_plan_6g; 788e93258fSBjoern A. Zeeb u8 rsvd16[71]; 798e93258fSBjoern A. Zeeb union { 808e93258fSBjoern A. Zeeb struct rtw8852c_u_efuse u; 818e93258fSBjoern A. Zeeb struct rtw8852c_e_efuse e; 828e93258fSBjoern A. Zeeb }; 838e93258fSBjoern A. Zeeb } __packed; 848e93258fSBjoern A. Zeeb 858e93258fSBjoern A. Zeeb extern const struct rtw89_chip_info rtw8852c_chip_info; 868e93258fSBjoern A. Zeeb 878e93258fSBjoern A. Zeeb #endif 88