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

Source file repositories/reference/linux-study-clean/drivers/net/wireless/realtek/rtw88/rtw8723x.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/realtek/rtw88/rtw8723x.h
Extension
.h
Size
15342 bytes
Lines
525
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: exported/initcall integration point
Status
integration implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct rtw8723xe_efuse {
	u8 mac_addr[ETH_ALEN];		/* 0xd0 */
	u8 vendor_id[2];
	u8 device_id[2];
	u8 sub_vendor_id[2];
	u8 sub_device_id[2];
} __packed;

struct rtw8723xu_efuse {
	u8 res4[48];                    /* 0xd0 */
	u8 vendor_id[2];                /* 0x100 */
	u8 product_id[2];               /* 0x102 */
	u8 usb_option;                  /* 0x104 */
	u8 res5[2];			/* 0x105 */
	u8 mac_addr[ETH_ALEN];          /* 0x107 */
} __packed;

struct rtw8723xs_efuse {
	u8 res4[0x4a];			/* 0xd0 */
	u8 mac_addr[ETH_ALEN];		/* 0x11a */
} __packed;

struct rtw8723x_efuse {
	__le16 rtl_id;
	u8 rsvd[2];
	u8 afe;
	u8 rsvd1[11];

	/* power index for four RF paths */
	struct rtw_txpwr_idx txpwr_idx_table[4];

	u8 channel_plan;		/* 0xb8 */
	u8 xtal_k;
	u8 thermal_meter;
	u8 iqk_lck;
	u8 pa_type;			/* 0xbc */
	u8 lna_type_2g[2];		/* 0xbd */
	u8 lna_type_5g[2];
	u8 rf_board_option;
	u8 rf_feature_option;
	u8 rf_bt_setting;
	u8 eeprom_version;
	u8 eeprom_customer_id;
	u8 tx_bb_swing_setting_2g;
	u8 res_c7;
	u8 tx_pwr_calibrate_rate;
	u8 rf_antenna_option;		/* 0xc9 */
	u8 rfe_option;
	u8 country_code[2];
	u8 res[3];
	union {
		struct rtw8723xe_efuse e;
		struct rtw8723xu_efuse u;
		struct rtw8723xs_efuse s;
	};
} __packed;

#define RTW8723X_IQK_ADDA_REG_NUM	16
#define RTW8723X_IQK_MAC8_REG_NUM	3
#define RTW8723X_IQK_MAC32_REG_NUM	1
#define RTW8723X_IQK_BB_REG_NUM		9

struct rtw8723x_iqk_backup_regs {
	u32 adda[RTW8723X_IQK_ADDA_REG_NUM];
	u8 mac8[RTW8723X_IQK_MAC8_REG_NUM];
	u32 mac32[RTW8723X_IQK_MAC32_REG_NUM];
	u32 bb[RTW8723X_IQK_BB_REG_NUM];

	u32 lte_path;
	u32 lte_gnt;

	u32 bb_sel_btg;
	u8 btg_sel;

	u8 igia;
	u8 igib;
};

struct rtw8723x_common {
	/* registers that must be backed up before IQK and restored after */
	u32 iqk_adda_regs[RTW8723X_IQK_ADDA_REG_NUM];
	u32 iqk_mac8_regs[RTW8723X_IQK_MAC8_REG_NUM];
	u32 iqk_mac32_regs[RTW8723X_IQK_MAC32_REG_NUM];
	u32 iqk_bb_regs[RTW8723X_IQK_BB_REG_NUM];

	/* chip register definitions */
	struct rtw_ltecoex_addr ltecoex_addr;
	struct rtw_rf_sipi_addr rf_sipi_addr[2];
	struct rtw_hw_reg dig[2];
	struct rtw_hw_reg dig_cck[1];

Annotation

Implementation Notes