1*dce9dc8dSLorenzo Bianconi /* 2*dce9dc8dSLorenzo Bianconi * Copyright (C) 2018 Lorenzo Bianconi <lorenzo.bianconi83@gmail.com> 3*dce9dc8dSLorenzo Bianconi * 4*dce9dc8dSLorenzo Bianconi * Permission to use, copy, modify, and/or distribute this software for any 5*dce9dc8dSLorenzo Bianconi * purpose with or without fee is hereby granted, provided that the above 6*dce9dc8dSLorenzo Bianconi * copyright notice and this permission notice appear in all copies. 7*dce9dc8dSLorenzo Bianconi * 8*dce9dc8dSLorenzo Bianconi * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 9*dce9dc8dSLorenzo Bianconi * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 10*dce9dc8dSLorenzo Bianconi * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 11*dce9dc8dSLorenzo Bianconi * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 12*dce9dc8dSLorenzo Bianconi * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 13*dce9dc8dSLorenzo Bianconi * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14*dce9dc8dSLorenzo Bianconi * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15*dce9dc8dSLorenzo Bianconi */ 16*dce9dc8dSLorenzo Bianconi 17*dce9dc8dSLorenzo Bianconi #ifndef __MT76x02_MCU_H 18*dce9dc8dSLorenzo Bianconi #define __MT76x0x_MCU_H 19*dce9dc8dSLorenzo Bianconi 20*dce9dc8dSLorenzo Bianconi #define MT_MCU_RESET_CTL 0x070C 21*dce9dc8dSLorenzo Bianconi #define MT_MCU_INT_LEVEL 0x0718 22*dce9dc8dSLorenzo Bianconi #define MT_MCU_COM_REG0 0x0730 23*dce9dc8dSLorenzo Bianconi #define MT_MCU_COM_REG1 0x0734 24*dce9dc8dSLorenzo Bianconi #define MT_MCU_COM_REG2 0x0738 25*dce9dc8dSLorenzo Bianconi #define MT_MCU_COM_REG3 0x073C 26*dce9dc8dSLorenzo Bianconi 27*dce9dc8dSLorenzo Bianconi #define MT_INBAND_PACKET_MAX_LEN 192 28*dce9dc8dSLorenzo Bianconi #define MT_MCU_MEMMAP_WLAN 0x410000 29*dce9dc8dSLorenzo Bianconi 30*dce9dc8dSLorenzo Bianconi enum mcu_cmd { 31*dce9dc8dSLorenzo Bianconi CMD_FUN_SET_OP = 1, 32*dce9dc8dSLorenzo Bianconi CMD_LOAD_CR = 2, 33*dce9dc8dSLorenzo Bianconi CMD_INIT_GAIN_OP = 3, 34*dce9dc8dSLorenzo Bianconi CMD_DYNC_VGA_OP = 6, 35*dce9dc8dSLorenzo Bianconi CMD_TDLS_CH_SW = 7, 36*dce9dc8dSLorenzo Bianconi CMD_BURST_WRITE = 8, 37*dce9dc8dSLorenzo Bianconi CMD_READ_MODIFY_WRITE = 9, 38*dce9dc8dSLorenzo Bianconi CMD_RANDOM_READ = 10, 39*dce9dc8dSLorenzo Bianconi CMD_BURST_READ = 11, 40*dce9dc8dSLorenzo Bianconi CMD_RANDOM_WRITE = 12, 41*dce9dc8dSLorenzo Bianconi CMD_LED_MODE_OP = 16, 42*dce9dc8dSLorenzo Bianconi CMD_POWER_SAVING_OP = 20, 43*dce9dc8dSLorenzo Bianconi CMD_WOW_CONFIG = 21, 44*dce9dc8dSLorenzo Bianconi CMD_WOW_QUERY = 22, 45*dce9dc8dSLorenzo Bianconi CMD_WOW_FEATURE = 24, 46*dce9dc8dSLorenzo Bianconi CMD_CARRIER_DETECT_OP = 28, 47*dce9dc8dSLorenzo Bianconi CMD_RADOR_DETECT_OP = 29, 48*dce9dc8dSLorenzo Bianconi CMD_SWITCH_CHANNEL_OP = 30, 49*dce9dc8dSLorenzo Bianconi CMD_CALIBRATION_OP = 31, 50*dce9dc8dSLorenzo Bianconi CMD_BEACON_OP = 32, 51*dce9dc8dSLorenzo Bianconi CMD_ANTENNA_OP = 33, 52*dce9dc8dSLorenzo Bianconi }; 53*dce9dc8dSLorenzo Bianconi 54*dce9dc8dSLorenzo Bianconi enum mcu_power_mode { 55*dce9dc8dSLorenzo Bianconi RADIO_OFF = 0x30, 56*dce9dc8dSLorenzo Bianconi RADIO_ON = 0x31, 57*dce9dc8dSLorenzo Bianconi RADIO_OFF_AUTO_WAKEUP = 0x32, 58*dce9dc8dSLorenzo Bianconi RADIO_OFF_ADVANCE = 0x33, 59*dce9dc8dSLorenzo Bianconi RADIO_ON_ADVANCE = 0x34, 60*dce9dc8dSLorenzo Bianconi }; 61*dce9dc8dSLorenzo Bianconi 62*dce9dc8dSLorenzo Bianconi enum mcu_function { 63*dce9dc8dSLorenzo Bianconi Q_SELECT = 1, 64*dce9dc8dSLorenzo Bianconi BW_SETTING = 2, 65*dce9dc8dSLorenzo Bianconi USB2_SW_DISCONNECT = 2, 66*dce9dc8dSLorenzo Bianconi USB3_SW_DISCONNECT = 3, 67*dce9dc8dSLorenzo Bianconi LOG_FW_DEBUG_MSG = 4, 68*dce9dc8dSLorenzo Bianconi GET_FW_VERSION = 5, 69*dce9dc8dSLorenzo Bianconi }; 70*dce9dc8dSLorenzo Bianconi 71*dce9dc8dSLorenzo Bianconi #endif /* __MT76x02_MCU_H */ 72