155b13a04SStanislaw Gruszka /* 255b13a04SStanislaw Gruszka * Copyright (C) 2014 Felix Fietkau <nbd@openwrt.org> 355b13a04SStanislaw Gruszka * Copyright (C) 2015 Jakub Kicinski <kubakici@wp.pl> 455b13a04SStanislaw Gruszka * 555b13a04SStanislaw Gruszka * This program is free software; you can redistribute it and/or modify 655b13a04SStanislaw Gruszka * it under the terms of the GNU General Public License version 2 755b13a04SStanislaw Gruszka * as published by the Free Software Foundation 855b13a04SStanislaw Gruszka * 955b13a04SStanislaw Gruszka * This program is distributed in the hope that it will be useful, 1055b13a04SStanislaw Gruszka * but WITHOUT ANY WARRANTY; without even the implied warranty of 1155b13a04SStanislaw Gruszka * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1255b13a04SStanislaw Gruszka * GNU General Public License for more details. 1355b13a04SStanislaw Gruszka */ 1455b13a04SStanislaw Gruszka 1555b13a04SStanislaw Gruszka #ifndef __MT76X0U_MCU_H 1655b13a04SStanislaw Gruszka #define __MT76X0U_MCU_H 1755b13a04SStanislaw Gruszka 18dce9dc8dSLorenzo Bianconi #include "../mt76x02_mcu.h" 1955b13a04SStanislaw Gruszka 20b2d871c0SLorenzo Bianconi struct mt76x02_dev; 2155b13a04SStanislaw Gruszka 2255b13a04SStanislaw Gruszka #define MT_MCU_IVB_SIZE 0x40 2355b13a04SStanislaw Gruszka #define MT_MCU_DLM_OFFSET 0x80000 2455b13a04SStanislaw Gruszka 2555b13a04SStanislaw Gruszka /* We use same space for BBP as for MAC regs 2655b13a04SStanislaw Gruszka * #define MT_MCU_MEMMAP_BBP 0x40000000 2755b13a04SStanislaw Gruszka */ 2855b13a04SStanislaw Gruszka #define MT_MCU_MEMMAP_RF 0x80000000 2955b13a04SStanislaw Gruszka 3055b13a04SStanislaw Gruszka enum mcu_calibrate { 3155b13a04SStanislaw Gruszka MCU_CAL_R = 1, 3255b13a04SStanislaw Gruszka MCU_CAL_RXDCOC, 3355b13a04SStanislaw Gruszka MCU_CAL_LC, 3455b13a04SStanislaw Gruszka MCU_CAL_LOFT, 3555b13a04SStanislaw Gruszka MCU_CAL_TXIQ, 3655b13a04SStanislaw Gruszka MCU_CAL_BW, 3755b13a04SStanislaw Gruszka MCU_CAL_DPD, 3855b13a04SStanislaw Gruszka MCU_CAL_RXIQ, 3955b13a04SStanislaw Gruszka MCU_CAL_TXDCOC, 4055b13a04SStanislaw Gruszka MCU_CAL_RX_GROUP_DELAY, 4155b13a04SStanislaw Gruszka MCU_CAL_TX_GROUP_DELAY, 4255b13a04SStanislaw Gruszka }; 4355b13a04SStanislaw Gruszka 44b2d871c0SLorenzo Bianconi int mt76x0e_mcu_init(struct mt76x02_dev *dev); 45b2d871c0SLorenzo Bianconi int mt76x0u_mcu_init(struct mt76x02_dev *dev); 46b2d871c0SLorenzo Bianconi static inline int mt76x0_firmware_running(struct mt76x02_dev *dev) 47db2803bbSLorenzo Bianconi { 48db2803bbSLorenzo Bianconi return mt76_rr(dev, MT_MCU_COM_REG0) == 1; 49db2803bbSLorenzo Bianconi } 50db2803bbSLorenzo Bianconi 5155b13a04SStanislaw Gruszka #endif 52