2 * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org>
3 * Copyright (C) 2015 Jakub Kicinski <kubakici@wp.pl>
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2
7 * as published by the Free Software Foundation
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
15 #ifndef __MT76X0U_MCU_H
16 #define __MT76X0U_MCU_H
20 /* Register definitions */
21 #define MT_MCU_RESET_CTL 0x070C
22 #define MT_MCU_INT_LEVEL 0x0718
23 #define MT_MCU_COM_REG0 0x0730
24 #define MT_MCU_COM_REG1 0x0734
25 #define MT_MCU_COM_REG2 0x0738
26 #define MT_MCU_COM_REG3 0x073C
28 #define MT_MCU_IVB_SIZE 0x40
29 #define MT_MCU_DLM_OFFSET 0x80000
31 #define MT_MCU_MEMMAP_WLAN 0x00410000
32 /* We use same space for BBP as for MAC regs
33 * #define MT_MCU_MEMMAP_BBP 0x40000000
35 #define MT_MCU_MEMMAP_RF 0x80000000
37 #define INBAND_PACKET_MAX_LEN 192
46 CMD_READ_MODIFY_WRITE = 9,
49 CMD_RANDOM_WRITE = 12,
51 CMD_POWER_SAVING_OP = 20,
55 CMD_CARRIER_DETECT_OP = 28,
56 CMD_RADOR_DETECT_OP = 29,
57 CMD_SWITCH_CHANNEL_OP = 30,
58 CMD_CALIBRATION_OP = 31,
66 ATOMIC_TSSI_SETTING = 5,
72 RADIO_OFF_AUTO_WAKEUP = 0x32,
73 RADIO_OFF_ADVANCE = 0x33,
74 RADIO_ON_ADVANCE = 0x34,
87 MCU_CAL_RX_GROUP_DELAY,
88 MCU_CAL_TX_GROUP_DELAY,
91 int mt76x0_mcu_init(struct mt76x0_dev *dev);
92 int mt76x0_mcu_cmd_init(struct mt76x0_dev *dev);
93 void mt76x0_mcu_cmd_deinit(struct mt76x0_dev *dev);
96 mt76x0_mcu_calibrate(struct mt76x0_dev *dev, enum mcu_calibrate cal, u32 val);
99 mt76x0_mcu_function_select(struct mt76x0_dev *dev, enum mcu_function func, u32 val);