1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 /* 3 * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> 4 * Copyright (C) 2015 Jakub Kicinski <kubakici@wp.pl> 5 */ 6 7 #ifndef __MT7601U_MCU_H 8 #define __MT7601U_MCU_H 9 10 struct mt7601u_dev; 11 12 /* Register definitions */ 13 #define MT_MCU_RESET_CTL 0x070C 14 #define MT_MCU_INT_LEVEL 0x0718 15 #define MT_MCU_COM_REG0 0x0730 16 #define MT_MCU_COM_REG1 0x0734 17 #define MT_MCU_COM_REG2 0x0738 18 #define MT_MCU_COM_REG3 0x073C 19 20 #define MT_MCU_IVB_SIZE 0x40 21 #define MT_MCU_DLM_OFFSET 0x80000 22 23 #define MT_MCU_MEMMAP_WLAN 0x00410000 24 #define MT_MCU_MEMMAP_BBP 0x40000000 25 #define MT_MCU_MEMMAP_RF 0x80000000 26 27 #define INBAND_PACKET_MAX_LEN 192 28 29 enum mcu_cmd { 30 CMD_FUN_SET_OP = 1, 31 CMD_LOAD_CR = 2, 32 CMD_INIT_GAIN_OP = 3, 33 CMD_DYNC_VGA_OP = 6, 34 CMD_TDLS_CH_SW = 7, 35 CMD_BURST_WRITE = 8, 36 CMD_READ_MODIFY_WRITE = 9, 37 CMD_RANDOM_READ = 10, 38 CMD_BURST_READ = 11, 39 CMD_RANDOM_WRITE = 12, 40 CMD_LED_MODE_OP = 16, 41 CMD_POWER_SAVING_OP = 20, 42 CMD_WOW_CONFIG = 21, 43 CMD_WOW_QUERY = 22, 44 CMD_WOW_FEATURE = 24, 45 CMD_CARRIER_DETECT_OP = 28, 46 CMD_RADOR_DETECT_OP = 29, 47 CMD_SWITCH_CHANNEL_OP = 30, 48 CMD_CALIBRATION_OP = 31, 49 CMD_BEACON_OP = 32, 50 CMD_ANTENNA_OP = 33, 51 }; 52 53 enum mcu_function { 54 Q_SELECT = 1, 55 ATOMIC_TSSI_SETTING = 5, 56 }; 57 58 enum mcu_power_mode { 59 RADIO_OFF = 0x30, 60 RADIO_ON = 0x31, 61 RADIO_OFF_AUTO_WAKEUP = 0x32, 62 RADIO_OFF_ADVANCE = 0x33, 63 RADIO_ON_ADVANCE = 0x34, 64 }; 65 66 enum mcu_calibrate { 67 MCU_CAL_R = 1, 68 MCU_CAL_DCOC, 69 MCU_CAL_LC, 70 MCU_CAL_LOFT, 71 MCU_CAL_TXIQ, 72 MCU_CAL_BW, 73 MCU_CAL_DPD, 74 MCU_CAL_RXIQ, 75 MCU_CAL_TXDCOC, 76 }; 77 78 int mt7601u_mcu_init(struct mt7601u_dev *dev); 79 int mt7601u_mcu_cmd_init(struct mt7601u_dev *dev); 80 void mt7601u_mcu_cmd_deinit(struct mt7601u_dev *dev); 81 82 int 83 mt7601u_mcu_calibrate(struct mt7601u_dev *dev, enum mcu_calibrate cal, u32 val); 84 int mt7601u_mcu_tssi_read_kick(struct mt7601u_dev *dev, int use_hvga); 85 86 #endif 87