root/drivers/net/wireless/mediatek/mt7601u/mcu.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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

/* [<][>][^][v][top][bottom][index][help] */