root/drivers/net/wireless/mediatek/mt76/mt76x02_mcu.h

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

INCLUDED FROM


DEFINITIONS

This source file includes following definitions.
  1. mt76x02_mcu_msg_alloc

   1 /* SPDX-License-Identifier: ISC */
   2 /*
   3  * Copyright (C) 2018 Lorenzo Bianconi <lorenzo.bianconi83@gmail.com>
   4  */
   5 
   6 #ifndef __MT76x02_MCU_H
   7 #define __MT76x02_MCU_H
   8 
   9 #include "mt76x02.h"
  10 
  11 #define MT_MCU_RESET_CTL                0x070C
  12 #define MT_MCU_INT_LEVEL                0x0718
  13 #define MT_MCU_COM_REG0                 0x0730
  14 #define MT_MCU_COM_REG1                 0x0734
  15 #define MT_MCU_COM_REG2                 0x0738
  16 #define MT_MCU_COM_REG3                 0x073C
  17 
  18 #define MT_INBAND_PACKET_MAX_LEN        192
  19 #define MT_MCU_MEMMAP_WLAN              0x410000
  20 
  21 #define MT_MCU_PCIE_REMAP_BASE4         0x074C
  22 
  23 #define MT_MCU_SEMAPHORE_00             0x07B0
  24 #define MT_MCU_SEMAPHORE_01             0x07B4
  25 #define MT_MCU_SEMAPHORE_02             0x07B8
  26 #define MT_MCU_SEMAPHORE_03             0x07BC
  27 
  28 #define MT_MCU_ILM_ADDR                 0x80000
  29 
  30 enum mcu_cmd {
  31         CMD_FUN_SET_OP = 1,
  32         CMD_LOAD_CR = 2,
  33         CMD_INIT_GAIN_OP = 3,
  34         CMD_DYNC_VGA_OP = 6,
  35         CMD_TDLS_CH_SW = 7,
  36         CMD_BURST_WRITE = 8,
  37         CMD_READ_MODIFY_WRITE = 9,
  38         CMD_RANDOM_READ = 10,
  39         CMD_BURST_READ = 11,
  40         CMD_RANDOM_WRITE = 12,
  41         CMD_LED_MODE_OP = 16,
  42         CMD_POWER_SAVING_OP = 20,
  43         CMD_WOW_CONFIG = 21,
  44         CMD_WOW_QUERY = 22,
  45         CMD_WOW_FEATURE = 24,
  46         CMD_CARRIER_DETECT_OP = 28,
  47         CMD_RADOR_DETECT_OP = 29,
  48         CMD_SWITCH_CHANNEL_OP = 30,
  49         CMD_CALIBRATION_OP = 31,
  50         CMD_BEACON_OP = 32,
  51         CMD_ANTENNA_OP = 33,
  52 };
  53 
  54 enum mcu_power_mode {
  55         RADIO_OFF = 0x30,
  56         RADIO_ON = 0x31,
  57         RADIO_OFF_AUTO_WAKEUP = 0x32,
  58         RADIO_OFF_ADVANCE = 0x33,
  59         RADIO_ON_ADVANCE = 0x34,
  60 };
  61 
  62 enum mcu_function {
  63         Q_SELECT = 1,
  64         BW_SETTING = 2,
  65         USB2_SW_DISCONNECT = 2,
  66         USB3_SW_DISCONNECT = 3,
  67         LOG_FW_DEBUG_MSG = 4,
  68         GET_FW_VERSION = 5,
  69 };
  70 
  71 struct mt76x02_fw_header {
  72         __le32 ilm_len;
  73         __le32 dlm_len;
  74         __le16 build_ver;
  75         __le16 fw_ver;
  76         u8 pad[4];
  77         char build_time[16];
  78 };
  79 
  80 struct mt76x02_patch_header {
  81         char build_time[16];
  82         char platform[4];
  83         char hw_version[4];
  84         char patch_version[4];
  85         u8 pad[2];
  86 };
  87 
  88 static inline struct sk_buff *
  89 mt76x02_mcu_msg_alloc(const void *data, int len)
  90 {
  91         return mt76_mcu_msg_alloc(data, 0, len, 0);
  92 }
  93 
  94 int mt76x02_mcu_cleanup(struct mt76x02_dev *dev);
  95 int mt76x02_mcu_calibrate(struct mt76x02_dev *dev, int type, u32 param);
  96 int mt76x02_mcu_msg_send(struct mt76_dev *mdev, int cmd, const void *data,
  97                          int len, bool wait_resp);
  98 int mt76x02_mcu_function_select(struct mt76x02_dev *dev, enum mcu_function func,
  99                                 u32 val);
 100 int mt76x02_mcu_set_radio_state(struct mt76x02_dev *dev, bool on);
 101 void mt76x02_set_ethtool_fwver(struct mt76x02_dev *dev,
 102                                const struct mt76x02_fw_header *h);
 103 
 104 #endif /* __MT76x02_MCU_H */

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