linux/drivers/net/wireless/realtek/rtw88/rtw8723x.h

/* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
/* Copyright 2024 Fiona Klute
 *
 * Based on code originally in rtw8723d.[ch],
 * Copyright(c) 2018-2019  Realtek Corporation
 */

#ifndef __RTW8723X_H__
#define __RTW8723X_H__

#include "main.h"
#include "debug.h"
#include "phy.h"
#include "reg.h"

enum rtw8723x_path {};

enum rtw8723x_iqk_round {};

enum rtw8723x_iqk_result {};

struct rtw8723xe_efuse {};

struct rtw8723xu_efuse {};

struct rtw8723xs_efuse {};

struct rtw8723x_efuse {};

#define RTW8723X_IQK_ADDA_REG_NUM
#define RTW8723X_IQK_MAC8_REG_NUM
#define RTW8723X_IQK_MAC32_REG_NUM
#define RTW8723X_IQK_BB_REG_NUM

struct rtw8723x_iqk_backup_regs {};

struct rtw8723x_common {};

extern const struct rtw8723x_common rtw8723x_common;

#define PATH_IQK_RETRY
#define MAX_TOLERANCE
#define IQK_TX_X_ERR
#define IQK_TX_Y_ERR
#define IQK_RX_X_ERR
#define IQK_RX_Y_ERR
#define IQK_RX_X_UPPER
#define IQK_RX_X_LOWER
#define IQK_RX_Y_LMT
#define IQK_TX_OK
#define IQK_RX_OK

#define WLAN_TXQ_RPT_EN

#define SPUR_THRES
#define DIS_3WIRE
#define EN_3WIRE
#define START_PSD
#define FREQ_CH5
#define FREQ_CH6
#define FREQ_CH7
#define FREQ_CH8
#define FREQ_CH13
#define FREQ_CH14
#define RFCFGCH_CHANNEL_MASK
#define RFCFGCH_BW_MASK
#define RFCFGCH_BW_20M
#define RFCFGCH_BW_40M
#define BIT_MASK_RFMOD
#define BIT_LCK

#define REG_GPIO_INTM
#define REG_BTG_SEL
#define BIT_MASK_BTG_WL
#define REG_LTECOEX_PATH_CONTROL
#define REG_LTECOEX_CTRL
#define REG_LTECOEX_WRITE_DATA
#define REG_LTECOEX_READ_DATA
#define REG_PSDFN
#define REG_BB_PWR_SAV1_11N
#define REG_ANA_PARAM1
#define REG_ANALOG_P4
#define REG_PSDRPT
#define REG_FPGA1_RFMOD
#define REG_BB_SEL_BTG
#define REG_BBRX_DFIR
#define BIT_MASK_RXBB_DFIR
#define BIT_RXBB_DFIR_EN
#define REG_CCK0_SYS
#define BIT_CCK_SIDE_BAND
#define REG_CCK_ANT_SEL_11N
#define REG_PWRTH
#define REG_CCK_FA_RST_11N
#define BIT_MASK_CCK_CNT_KEEP
#define BIT_MASK_CCK_CNT_EN
#define BIT_MASK_CCK_CNT_KPEN
#define BIT_MASK_CCK_FA_KEEP
#define BIT_MASK_CCK_FA_EN
#define BIT_MASK_CCK_FA_KPEN
#define REG_CCK_FA_LSB_11N
#define REG_CCK_FA_MSB_11N
#define REG_CCK_CCA_CNT_11N
#define BIT_MASK_CCK_FA_MSB
#define BIT_MASK_CCK_FA_LSB
#define REG_PWRTH2
#define REG_CSRATIO
#define REG_OFDM_FA_HOLDC_11N
#define BIT_MASK_OFDM_FA_KEEP
#define REG_BB_RX_PATH_11N
#define REG_TRMUX_11N
#define REG_OFDM_FA_RSTC_11N
#define BIT_MASK_OFDM_FA_RST
#define REG_A_RXIQI
#define BIT_MASK_RXIQ_S1_X
#define BIT_MASK_RXIQ_S1_Y1
#define BIT_SET_RXIQ_S1_Y1(y)
#define REG_OFDM0_RXDSP
#define BIT_MASK_RXDSP
#define BIT_EN_RXDSP
#define REG_OFDM_0_ECCA_THRESHOLD
#define BIT_MASK_OFDM0_EXT_A
#define BIT_MASK_OFDM0_EXT_C
#define BIT_MASK_OFDM0_EXTS
#define BIT_SET_OFDM0_EXTS(a, c, d)
#define BIT_MASK_OFDM0_EXTS_B
#define BIT_SET_OFDM0_EXTS_B(a, c, d)
#define REG_OFDM0_XAAGC1
#define REG_OFDM0_XBAGC1
#define REG_AGCRSSI
#define REG_OFDM_0_XA_TX_IQ_IMBALANCE
#define REG_OFDM_0_XB_TX_IQ_IMBALANCE
#define BIT_MASK_TXIQ_ELM_A
#define BIT_SET_TXIQ_ELM_ACD(a, c, d)
#define BIT_MASK_TXIQ_ELM_C
#define BIT_SET_TXIQ_ELM_C2(c)
#define BIT_MASK_TXIQ_ELM_D
#define REG_TXIQK_MATRIXA_LSB2_11N
#define BIT_SET_TXIQ_ELM_C1(c)
#define REG_RXIQK_MATRIX_LSB_11N
#define BIT_MASK_RXIQ_S1_Y2
#define BIT_SET_RXIQ_S1_Y2(y)
#define REG_TXIQ_AB_S0
#define BIT_MASK_TXIQ_A_S0
#define BIT_MASK_TXIQ_A_EXT_S0
#define BIT_MASK_TXIQ_B_S0
#define REG_TXIQ_CD_S0
#define BIT_MASK_TXIQ_C_S0
#define BIT_MASK_TXIQ_C_EXT_S0
#define BIT_MASK_TXIQ_D_S0
#define BIT_MASK_TXIQ_D_EXT_S0
#define REG_RXIQ_AB_S0
#define BIT_MASK_RXIQ_X_S0
#define BIT_MASK_RXIQ_Y_S0
#define REG_OFDM_FA_TYPE1_11N
#define BIT_MASK_OFDM_FF_CNT
#define BIT_MASK_OFDM_SF_CNT
#define REG_OFDM_FA_RSTD_11N
#define BIT_MASK_OFDM_FA_RST1
#define BIT_MASK_OFDM_FA_KEEP1
#define REG_CTX
#define BIT_MASK_CTX_TYPE
#define REG_OFDM1_CFOTRK
#define BIT_EN_CFOTRK
#define REG_OFDM1_CSI1
#define REG_OFDM1_CSI2
#define REG_OFDM1_CSI3
#define REG_OFDM1_CSI4
#define REG_OFDM_FA_TYPE2_11N
#define BIT_MASK_OFDM_CCA_CNT
#define BIT_MASK_OFDM_PF_CNT
#define REG_OFDM_FA_TYPE3_11N
#define BIT_MASK_OFDM_RI_CNT
#define BIT_MASK_OFDM_CRC_CNT
#define REG_OFDM_FA_TYPE4_11N
#define BIT_MASK_OFDM_MNS_CNT
#define REG_FPGA0_IQK_11N
#define BIT_MASK_IQK_MOD
#define EN_IQK
#define RST_IQK
#define REG_TXIQK_TONE_A_11N
#define REG_RXIQK_TONE_A_11N
#define REG_TXIQK_PI_A_11N
#define REG_RXIQK_PI_A_11N
#define REG_TXIQK_11N
#define BIT_SET_TXIQK_11N(x, y)
#define REG_RXIQK_11N
#define REG_IQK_AGC_PTS_11N
#define REG_IQK_AGC_RSP_11N
#define REG_TX_IQK_TONE_B
#define REG_RX_IQK_TONE_B
#define REG_TXIQK_PI_B
#define REG_RXIQK_PI_B
#define REG_IQK_RES_TX
#define BIT_MASK_RES_TX
#define REG_IQK_RES_TY
#define BIT_MASK_RES_TY
#define REG_IQK_RES_RX
#define BIT_MASK_RES_RX
#define REG_IQK_RES_RY
#define BIT_IQK_TX_FAIL
#define BIT_IQK_RX_FAIL
#define BIT_IQK_DONE
#define BIT_MASK_RES_RY
#define REG_PAGE_F_RST_11N
#define BIT_MASK_F_RST_ALL
#define REG_IGI_C_11N
#define REG_IGI_D_11N
#define REG_HT_CRC32_CNT_11N
#define BIT_MASK_HT_CRC_OK
#define BIT_MASK_HT_CRC_ERR
#define REG_OFDM_CRC32_CNT_11N
#define BIT_MASK_OFDM_LCRC_OK
#define BIT_MASK_OFDM_LCRC_ERR
#define REG_HT_CRC32_CNT_11N_AGG

#define OFDM_SWING_A(swing)
#define OFDM_SWING_B(swing)
#define OFDM_SWING_C(swing)
#define OFDM_SWING_D(swing)

static inline s32 iqkxy_to_s32(s32 val)
{}

static inline s32 iqk_mult(s32 x, s32 y, s32 *ext)
{}

static inline
void rtw8723x_debug_txpwr_limit(struct rtw_dev *rtwdev,
				struct rtw_txpwr_idx *table,
				int tx_path_count)
{}

static inline void rtw8723x_lck(struct rtw_dev *rtwdev)
{}

static inline int rtw8723x_read_efuse(struct rtw_dev *rtwdev, u8 *log_map)
{}

static inline int rtw8723x_mac_init(struct rtw_dev *rtwdev)
{}

static inline void rtw8723x_cfg_ldo25(struct rtw_dev *rtwdev, bool enable)
{}

static inline void rtw8723x_set_tx_power_index(struct rtw_dev *rtwdev)
{}

static inline void rtw8723x_efuse_grant(struct rtw_dev *rtwdev, bool on)
{}

static inline void rtw8723x_false_alarm_statistics(struct rtw_dev *rtwdev)
{}

static inline
void rtw8723x_iqk_backup_regs(struct rtw_dev *rtwdev,
			      struct rtw8723x_iqk_backup_regs *backup)
{}

static inline
void rtw8723x_iqk_restore_regs(struct rtw_dev *rtwdev,
			       const struct rtw8723x_iqk_backup_regs *backup)
{}

static inline
bool rtw8723x_iqk_similarity_cmp(struct rtw_dev *rtwdev, s32 result[][IQK_NR],
				 u8 c1, u8 c2)
{}

static inline u8 rtw8723x_pwrtrack_get_limit_ofdm(struct rtw_dev *rtwdev)
{}

static inline
void rtw8723x_pwrtrack_set_xtal(struct rtw_dev *rtwdev, u8 therm_path,
				u8 delta)
{}

static inline void rtw8723x_coex_cfg_init(struct rtw_dev *rtwdev)
{}

static inline
void rtw8723x_fill_txdesc_checksum(struct rtw_dev *rtwdev,
				   struct rtw_tx_pkt_info *pkt_info,
				   u8 *txdesc)
{}

/* IQK helper functions, defined as inline so they can be shared
 * without needing an EXPORT_SYMBOL each.
 */
static inline void
rtw8723x_iqk_backup_path_ctrl(struct rtw_dev *rtwdev,
			      struct rtw8723x_iqk_backup_regs *backup)
{}

static inline void rtw8723x_iqk_config_path_ctrl(struct rtw_dev *rtwdev)
{}

static inline void
rtw8723x_iqk_restore_path_ctrl(struct rtw_dev *rtwdev,
			       const struct rtw8723x_iqk_backup_regs *backup)
{}

static inline void
rtw8723x_iqk_backup_lte_path_gnt(struct rtw_dev *rtwdev,
				 struct rtw8723x_iqk_backup_regs *backup)
{}

static inline void
rtw8723x_iqk_config_lte_path_gnt(struct rtw_dev *rtwdev,
				 u32 write_data)
{}

static inline void
rtw8723x_iqk_restore_lte_path_gnt(struct rtw_dev *rtwdev,
				  const struct rtw8723x_iqk_backup_regs *bak)
{}

/* set all ADDA registers to the given value */
static inline void rtw8723x_iqk_path_adda_on(struct rtw_dev *rtwdev, u32 value)
{}

#endif /* __RTW8723X_H__ */