18#ifndef __VSF_WIFI_MT76_H__
19#define __VSF_WIFI_MT76_H__
25#if VSF_USE_WIFI == ENABLED && VSF_WIFI_USE_MT76 == ENABLED
35#define MT76_RX_URB_SIZE 2048
36#define MT76_TX_URB_SIZE 4096
37#define MT76_MCU_RESP_SIZE 2048
39#define MT76_EEPROM_SIZE 512
42#define MT76_EP_IN_CMD_RESP 1
45#define MT_EFUSE_CTRL 0x0024
46#define MT_EFUSE_CTRL_AOUT 0x0000003F
47#define MT_EFUSE_CTRL_MODE 0x000000C0
48#define MT_EFUSE_CTRL_AIN 0x03FF0000
49#define MT_EFUSE_CTRL_KICK 0x40000000
50#define MT_EFUSE_CTRL_SEL 0x80000000
52#define MT_EFUSE_DATA_BASE 0x0028
53#define MT_EFUSE_DATA(_n) (MT_EFUSE_DATA_BASE + ((_n) << 2))
56#define MT_MAC_ADDR_DW0 0x1008
57#define MT_MAC_ADDR_DW1 0x100c
58#define MT_MAC_ADDR_DW1_U2ME_MASK 0x00FF0000
60#define MT_MAC_BSSID_DW0 0x1010
61#define MT_MAC_BSSID_DW1 0x1014
62#define MT_MAC_BSSID_DW1_ADDR 0x0000FFFF
63#define MT_MAC_BSSID_DW1_MBSS_MODE 0x00030000
64#define MT_MAC_BSSID_DW1_MBSS_LOCAL_BIT 0x00040000
65#define MT_MAC_BSSID_DW1_MBEACON_N 0x001C0000
66#define MT_MAC_BSSID_DW1_MBEACON_N_SHIFT 18
69#define MT_MAC_APC_BSSID_BASE 0x1090
70#define MT_MAC_APC_BSSID_L(_n) (MT_MAC_APC_BSSID_BASE + ((_n) * 8))
71#define MT_MAC_APC_BSSID_H(_n) (MT_MAC_APC_BSSID_BASE + ((_n) * 8 + 4))
72#define MT_MAC_APC_BSSID_H_ADDR 0x0000FFFF
243#if VSF_KERNEL_CFG_SUPPORT_CALLBACK_TIMER == ENABLED
274#if VSF_WIFI_CFG_CHIP_MT76_LOG_LEVEL >= 1
275# define vsf_wifi_chip_mt76_trace_error(...) vsf_trace_error(__VA_ARGS__)
277# define vsf_wifi_chip_mt76_trace_error(...) ((void)0)
280#if VSF_WIFI_CFG_CHIP_MT76_LOG_LEVEL >= 2
281# define vsf_wifi_chip_mt76_trace_info(...) vsf_trace_info(__VA_ARGS__)
283# define vsf_wifi_chip_mt76_trace_info(...) ((void)0)
286#if VSF_WIFI_CFG_CHIP_MT76_LOG_LEVEL >= 4
287# define vsf_wifi_chip_mt76_trace_debug(...) vsf_trace_info(__VA_ARGS__)
289# define vsf_wifi_chip_mt76_trace_debug(...) ((void)0)
vsf_err_t
Definition __type.h:42
struct ieee80211_ext_chansw_ie data
Definition ieee80211.h:80
unsigned short uint16_t
Definition stdint.h:7
unsigned uint32_t
Definition stdint.h:9
unsigned char uint8_t
Definition stdint.h:5
signed char int8_t
Definition stdint.h:4
Definition vsf_wifi_mt76.h:128
vsf_wifi_done_t disconnect_done
Definition vsf_wifi_mt76.h:234
uint8_t state
Definition vsf_wifi_mt76.h:162
uint8_t set_channel_ch_group
Definition vsf_wifi_mt76.h:220
uint32_t fw_poll_mask
Definition vsf_wifi_mt76.h:198
uint32_t fw_patch_mask
Definition vsf_wifi_mt76.h:197
uint8_t set_channel_bw_index
Definition vsf_wifi_mt76.h:219
uint8_t set_channel_substate
Definition vsf_wifi_mt76.h:223
uint8_t rx_buf[MT76_RX_URB_SIZE]
Definition vsf_wifi_mt76.h:267
uint8_t eeprom[MT76_EEPROM_SIZE]
Definition vsf_wifi_mt76.h:142
uint32_t rxfilter
Definition vsf_wifi_mt76.h:148
uint8_t mcu_wait_seq
Definition vsf_wifi_mt76.h:169
uint8_t fw_send_next_state
Definition vsf_wifi_mt76.h:187
uint32_t eeprom_data[4]
Definition vsf_wifi_mt76.h:176
uint16_t pending_cmd
Definition vsf_wifi_mt76.h:181
uint8_t set_channel_post_substate
Definition vsf_wifi_mt76.h:225
bool init_cal_done
Definition vsf_wifi_mt76.h:159
void * bus_priv
Definition vsf_wifi_mt76.h:130
uint8_t mcast_pn[6]
Definition vsf_wifi_mt76.h:242
uint8_t eeprom_step
Definition vsf_wifi_mt76.h:174
uint8_t set_channel_scan
Definition vsf_wifi_mt76.h:217
int8_t rx_rssi_offset[2]
Definition vsf_wifi_mt76.h:155
void(* on_rx)(vsf_wifi_t *wifi, uint8_t *buf, uint16_t len)
Definition vsf_wifi_mt76.h:134
uint8_t xtal_step
Definition vsf_wifi_mt76.h:212
int8_t rx_high_gain[2]
Definition vsf_wifi_mt76.h:154
uint32_t fw_idx
Definition vsf_wifi_mt76.h:188
uint16_t tx_rate_val
Definition vsf_wifi_mt76.h:255
uint8_t fw_rf_step
Definition vsf_wifi_mt76.h:202
uint32_t fw_max_payload
Definition vsf_wifi_mt76.h:195
uint32_t fw_dst_offset
Definition vsf_wifi_mt76.h:194
vsf_wifi_done_t mcu_wait_done
Definition vsf_wifi_mt76.h:170
uint32_t fw_dlm_len
Definition vsf_wifi_mt76.h:190
uint32_t fw_len
Definition vsf_wifi_mt76.h:192
uint32_t fw_pos
Definition vsf_wifi_mt76.h:193
uint8_t init_substate
Definition vsf_wifi_mt76.h:211
uint32_t txstat_ext_val
Definition vsf_wifi_mt76.h:248
uint8_t tx_rate_success_cnt
Definition vsf_wifi_mt76.h:254
uint32_t asic_rev
Definition vsf_wifi_mt76.h:140
vsf_wifi_done_t set_channel_done
Definition vsf_wifi_mt76.h:227
uint16_t init_idx2
Definition vsf_wifi_mt76.h:210
uint8_t set_channel_bw
Definition vsf_wifi_mt76.h:218
vsf_wifi_done_t eeprom_done
Definition vsf_wifi_mt76.h:177
vsf_callback_timer_t fw_timer
Definition vsf_wifi_mt76.h:244
uint8_t set_channel_channel
Definition vsf_wifi_mt76.h:216
vsf_wifi_done_t pending_done
Definition vsf_wifi_mt76.h:180
uint8_t fw_stage
Definition vsf_wifi_mt76.h:185
uint32_t fw_patch_reg
Definition vsf_wifi_mt76.h:196
bool set_channel_is_5g
Definition vsf_wifi_mt76.h:221
uint8_t mac_addr_step
Definition vsf_wifi_mt76.h:205
uint16_t fw_sem_ms
Definition vsf_wifi_mt76.h:200
uint32_t set_channel_saved_rts
Definition vsf_wifi_mt76.h:226
uint8_t fw_rf_unit
Definition vsf_wifi_mt76.h:201
uint16_t fw_poll_ms
Definition vsf_wifi_mt76.h:199
uint16_t xtal_val
Definition vsf_wifi_mt76.h:213
bool mcu_wait_resp
Definition vsf_wifi_mt76.h:168
uint16_t init_idx
Definition vsf_wifi_mt76.h:209
uint8_t mac_addr[6]
Definition vsf_wifi_mt76.h:141
uint32_t rx_mcu_gain
Definition vsf_wifi_mt76.h:152
const uint8_t * fw_data
Definition vsf_wifi_mt76.h:191
uint8_t tx_rate_idx
Definition vsf_wifi_mt76.h:253
uint16_t chainmask
Definition vsf_wifi_mt76.h:146
uint8_t set_channel_state
Definition vsf_wifi_mt76.h:222
vsf_wifi_done_t mac_addr_done
Definition vsf_wifi_mt76.h:206
vsf_callback_timer_t txstat_timer
Definition vsf_wifi_mt76.h:246
uint8_t fw_send_state
Definition vsf_wifi_mt76.h:186
uint8_t fw_state
Definition vsf_wifi_mt76.h:184
uint32_t txstat_val
Definition vsf_wifi_mt76.h:247
int8_t rx_lna_gain
Definition vsf_wifi_mt76.h:153
uint8_t set_channel_bbp_substate
Definition vsf_wifi_mt76.h:224
uint32_t fw_ilm_len
Definition vsf_wifi_mt76.h:189
int8_t last_rssi
Definition vsf_wifi_mt76.h:259
uint8_t last_channel
Definition vsf_wifi_mt76.h:228
vsf_wifi_done_t crypto_done
Definition vsf_wifi_mt76.h:237
uint8_t mcu_seq
Definition vsf_wifi_mt76.h:161
vsf_wifi_t * wifi
Definition vsf_wifi_mt76.h:129
uint32_t eeprom_ctrl
Definition vsf_wifi_mt76.h:175
uint8_t mcu_resp_buf[MT76_MCU_RESP_SIZE]
Definition vsf_wifi_mt76.h:269
uint16_t eeprom_offset
Definition vsf_wifi_mt76.h:173
uint16_t tx_seq
Definition vsf_wifi_mt76.h:264
void(* on_rx_pkt)(vsf_wifi_t *wifi, uint8_t *buf, uint16_t len)
Definition vsf_wifi_mt76.h:138
bool rx_gain_read
Definition vsf_wifi_mt76.h:156
vsf_wifi_done_t connect_done
Definition vsf_wifi_mt76.h:231
uint8_t tx_buf[MT76_TX_URB_SIZE]
Definition vsf_wifi_mt76.h:268
Definition vsf_wifi.h:304
Definition vsf_wifi_mt76.h:88
vsf_err_t(* dev_class_cmd)(vsf_wifi_t *wifi, uint8_t req, uint16_t value, uint16_t index, const uint8_t *data, uint16_t len, vsf_wifi_done_t done)
Definition vsf_wifi_mt76.h:106
vsf_err_t(* fce_write)(vsf_wifi_t *wifi, uint32_t addr, uint32_t val, vsf_wifi_done_t done)
Definition vsf_wifi_mt76.h:96
vsf_err_t(* rx_submit)(vsf_wifi_t *wifi, uint8_t *buf, uint16_t len, uint8_t queue_idx)
Definition vsf_wifi_mt76.h:124
vsf_err_t(* tx_frame)(vsf_wifi_t *wifi, const uint8_t *data, uint16_t len, uint8_t queue_idx, vsf_wifi_done_t done)
Definition vsf_wifi_mt76.h:120
vsf_err_t(* dev_cmd)(vsf_wifi_t *wifi, uint8_t req, uint16_t value, uint16_t index, vsf_wifi_done_t done)
Definition vsf_wifi_mt76.h:101
vsf_wifi_reg_bus_t base
Definition vsf_wifi_mt76.h:91
vsf_err_t(* mcu_cmd)(vsf_wifi_t *wifi, const uint8_t *data, uint16_t len, vsf_wifi_done_t done)
Definition vsf_wifi_mt76.h:115
Definition vsf_wifi.h:214
Definition vsf_wifi_priv.h:57
vk_av_control_value_t value
Definition vsf_audio.h:171
void(* vsf_wifi_done_t)(vsf_wifi_t *wifi, vsf_err_t err)
Definition vsf_wifi.h:123
struct vsf_wifi_mt76_bus_ops_t vsf_wifi_mt76_bus_ops_t
const vsf_wifi_chip_drv_t vsf_wifi_mt76_drv
Definition vsf_wifi_mt76.c:5920
const uint32_t __mt76_main_firmware_size
Definition vsf_wifi_mt76_firmware_data.c:6803
#define MT76_TX_URB_SIZE
Definition vsf_wifi_mt76.h:36
const uint32_t __mt76_rom_patch_firmware_size
Definition vsf_wifi_mt76_firmware_data.c:1673
const uint8_t __mt76_rom_patch_firmware_data[]
Definition vsf_wifi_mt76_firmware_data.c:24
#define MT76_RX_URB_SIZE
Definition vsf_wifi_mt76.h:35
#define MT76_MCU_RESP_SIZE
Definition vsf_wifi_mt76.h:37
struct mt76_wifi_priv mt76_wifi_priv_t
#define MT76_EEPROM_SIZE
Definition vsf_wifi_mt76.h:39
const uint8_t __mt76_main_firmware_data[]
Definition vsf_wifi_mt76_firmware_data.c:1677