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