1*4882a593Smuzhiyun /* SPDX-License-Identifier: ISC */ 2*4882a593Smuzhiyun 3*4882a593Smuzhiyun #ifndef __MT7603_MCU_H 4*4882a593Smuzhiyun #define __MT7603_MCU_H 5*4882a593Smuzhiyun 6*4882a593Smuzhiyun struct mt7603_mcu_txd { 7*4882a593Smuzhiyun __le16 len; 8*4882a593Smuzhiyun __le16 pq_id; 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun u8 cid; 11*4882a593Smuzhiyun u8 pkt_type; 12*4882a593Smuzhiyun u8 set_query; 13*4882a593Smuzhiyun u8 seq; 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun u8 uc_d2b0_rev; 16*4882a593Smuzhiyun u8 ext_cid; 17*4882a593Smuzhiyun u8 uc_d2b2_rev; 18*4882a593Smuzhiyun u8 ext_cid_ack; 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun u32 au4_d3_to_d7_rev[5]; 21*4882a593Smuzhiyun } __packed __aligned(4); 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun struct mt7603_mcu_rxd { 24*4882a593Smuzhiyun __le16 len; 25*4882a593Smuzhiyun __le16 pkt_type_id; 26*4882a593Smuzhiyun 27*4882a593Smuzhiyun u8 eid; 28*4882a593Smuzhiyun u8 seq; 29*4882a593Smuzhiyun __le16 __rsv; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun u8 ext_eid; 32*4882a593Smuzhiyun u8 __rsv1[3]; 33*4882a593Smuzhiyun }; 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun #define MCU_PKT_ID 0xa0 36*4882a593Smuzhiyun #define MCU_PORT_QUEUE 0x8000 37*4882a593Smuzhiyun #define MCU_PORT_QUEUE_FW 0xc000 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun #define MCU_FIRMWARE_ADDRESS 0x100000 40*4882a593Smuzhiyun 41*4882a593Smuzhiyun enum { 42*4882a593Smuzhiyun MCU_Q_QUERY, 43*4882a593Smuzhiyun MCU_Q_SET, 44*4882a593Smuzhiyun MCU_Q_RESERVED, 45*4882a593Smuzhiyun MCU_Q_NA 46*4882a593Smuzhiyun }; 47*4882a593Smuzhiyun 48*4882a593Smuzhiyun enum { 49*4882a593Smuzhiyun MCU_CMD_TARGET_ADDRESS_LEN_REQ = 0x01, 50*4882a593Smuzhiyun MCU_CMD_FW_START_REQ = 0x02, 51*4882a593Smuzhiyun MCU_CMD_INIT_ACCESS_REG = 0x3, 52*4882a593Smuzhiyun MCU_CMD_PATCH_START_REQ = 0x05, 53*4882a593Smuzhiyun MCU_CMD_PATCH_FINISH_REQ = 0x07, 54*4882a593Smuzhiyun MCU_CMD_PATCH_SEM_CONTROL = 0x10, 55*4882a593Smuzhiyun MCU_CMD_HIF_LOOPBACK = 0x20, 56*4882a593Smuzhiyun MCU_CMD_CH_PRIVILEGE = 0x20, 57*4882a593Smuzhiyun MCU_CMD_ACCESS_REG = 0xC2, 58*4882a593Smuzhiyun MCU_CMD_EXT_CID = 0xED, 59*4882a593Smuzhiyun MCU_CMD_FW_SCATTER = 0xEE, 60*4882a593Smuzhiyun MCU_CMD_RESTART_DL_REQ = 0xEF, 61*4882a593Smuzhiyun }; 62*4882a593Smuzhiyun 63*4882a593Smuzhiyun enum { 64*4882a593Smuzhiyun MCU_EXT_CMD_RF_REG_ACCESS = 0x02, 65*4882a593Smuzhiyun MCU_EXT_CMD_RF_TEST = 0x04, 66*4882a593Smuzhiyun MCU_EXT_CMD_RADIO_ON_OFF_CTRL = 0x05, 67*4882a593Smuzhiyun MCU_EXT_CMD_WIFI_RX_DISABLE = 0x06, 68*4882a593Smuzhiyun MCU_EXT_CMD_PM_STATE_CTRL = 0x07, 69*4882a593Smuzhiyun MCU_EXT_CMD_CHANNEL_SWITCH = 0x08, 70*4882a593Smuzhiyun MCU_EXT_CMD_NIC_CAPABILITY = 0x09, 71*4882a593Smuzhiyun MCU_EXT_CMD_PWR_SAVING = 0x0A, 72*4882a593Smuzhiyun MCU_EXT_CMD_MULTIPLE_REG_ACCESS = 0x0E, 73*4882a593Smuzhiyun MCU_EXT_CMD_AP_PWR_SAVING_CAPABILITY = 0xF, 74*4882a593Smuzhiyun MCU_EXT_CMD_SEC_ADDREMOVE_KEY = 0x10, 75*4882a593Smuzhiyun MCU_EXT_CMD_SET_TX_POWER_CTRL = 0x11, 76*4882a593Smuzhiyun MCU_EXT_CMD_FW_LOG_2_HOST = 0x13, 77*4882a593Smuzhiyun MCU_EXT_CMD_PS_RETRIEVE_START = 0x14, 78*4882a593Smuzhiyun MCU_EXT_CMD_LED_CTRL = 0x17, 79*4882a593Smuzhiyun MCU_EXT_CMD_PACKET_FILTER = 0x18, 80*4882a593Smuzhiyun MCU_EXT_CMD_PWR_MGT_BIT_WIFI = 0x1B, 81*4882a593Smuzhiyun MCU_EXT_CMD_EFUSE_BUFFER_MODE = 0x21, 82*4882a593Smuzhiyun MCU_EXT_CMD_THERMAL_PROTECT = 0x23, 83*4882a593Smuzhiyun MCU_EXT_CMD_EDCA_SET = 0x27, 84*4882a593Smuzhiyun MCU_EXT_CMD_SLOT_TIME_SET = 0x28, 85*4882a593Smuzhiyun MCU_EXT_CMD_CONFIG_INTERNAL_SETTING = 0x29, 86*4882a593Smuzhiyun MCU_EXT_CMD_NOA_OFFLOAD_CTRL = 0x2B, 87*4882a593Smuzhiyun MCU_EXT_CMD_GET_THEMAL_SENSOR = 0x2C, 88*4882a593Smuzhiyun MCU_EXT_CMD_WAKEUP_OPTION = 0x2E, 89*4882a593Smuzhiyun MCU_EXT_CMD_AC_QUEUE_CONTROL = 0x31, 90*4882a593Smuzhiyun MCU_EXT_CMD_BCN_UPDATE = 0x33 91*4882a593Smuzhiyun }; 92*4882a593Smuzhiyun 93*4882a593Smuzhiyun enum { 94*4882a593Smuzhiyun MCU_EXT_EVENT_CMD_RESULT = 0x0, 95*4882a593Smuzhiyun MCU_EXT_EVENT_RF_REG_ACCESS = 0x2, 96*4882a593Smuzhiyun MCU_EXT_EVENT_MULTI_CR_ACCESS = 0x0E, 97*4882a593Smuzhiyun MCU_EXT_EVENT_FW_LOG_2_HOST = 0x13, 98*4882a593Smuzhiyun MCU_EXT_EVENT_BEACON_LOSS = 0x1A, 99*4882a593Smuzhiyun MCU_EXT_EVENT_THERMAL_PROTECT = 0x22, 100*4882a593Smuzhiyun MCU_EXT_EVENT_BCN_UPDATE = 0x31, 101*4882a593Smuzhiyun }; 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun #endif 104