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