Path: blob/main/sys/contrib/dev/mediatek/mt76/mt7615/eeprom.h
48526 views
/* SPDX-License-Identifier: ISC */1/* Copyright (C) 2019 MediaTek Inc. */23#ifndef __MT7615_EEPROM_H4#define __MT7615_EEPROM_H56#include "mt7615.h"789#define MT7615_EEPROM_DCOC_OFFSET MT7615_EEPROM_SIZE10#define MT7615_EEPROM_DCOC_SIZE 25611#define MT7615_EEPROM_DCOC_COUNT 341213#define MT7615_EEPROM_TXDPD_OFFSET (MT7615_EEPROM_SIZE + \14MT7615_EEPROM_DCOC_COUNT * \15MT7615_EEPROM_DCOC_SIZE)16#define MT7615_EEPROM_TXDPD_SIZE 21617#define MT7615_EEPROM_TXDPD_COUNT (44 + 3)1819#define MT7615_EEPROM_FULL_SIZE (MT7615_EEPROM_TXDPD_OFFSET + \20MT7615_EEPROM_TXDPD_COUNT * \21MT7615_EEPROM_TXDPD_SIZE)2223enum mt7615_eeprom_field {24MT_EE_CHIP_ID = 0x000,25MT_EE_VERSION = 0x002,26MT_EE_MAC_ADDR = 0x004,27MT_EE_NIC_CONF_0 = 0x034,28MT_EE_NIC_CONF_1 = 0x036,29MT_EE_WIFI_CONF = 0x03e,30MT_EE_CALDATA_FLASH = 0x052,31MT_EE_TX0_2G_TARGET_POWER = 0x058,32MT_EE_TX0_5G_G0_TARGET_POWER = 0x070,33MT7663_EE_5G_RATE_POWER = 0x089,34MT_EE_TX1_5G_G0_TARGET_POWER = 0x098,35MT_EE_2G_RATE_POWER = 0x0be,36MT_EE_5G_RATE_POWER = 0x0d5,37MT7663_EE_TX0_2G_TARGET_POWER = 0x0e3,38MT_EE_EXT_PA_2G_TARGET_POWER = 0x0f2,39MT_EE_EXT_PA_5G_TARGET_POWER = 0x0f3,40MT_EE_TX2_5G_G0_TARGET_POWER = 0x142,41MT_EE_TX3_5G_G0_TARGET_POWER = 0x16a,42MT7663_EE_HW_CONF1 = 0x1b0,43MT7663_EE_TX0_5G_G0_TARGET_POWER = 0x245,44MT7663_EE_TX1_5G_G0_TARGET_POWER = 0x2b5,4546MT7615_EE_MAX = 0x3bf,47MT7622_EE_MAX = 0x3db,48MT7663_EE_MAX = 0x600,49};5051#define MT_EE_RATE_POWER_MASK GENMASK(5, 0)52#define MT_EE_RATE_POWER_SIGN BIT(6)53#define MT_EE_RATE_POWER_EN BIT(7)5455#define MT_EE_CALDATA_FLASH_TX_DPD BIT(0)56#define MT_EE_CALDATA_FLASH_RX_CAL BIT(1)5758#define MT_EE_NIC_CONF_TX_MASK GENMASK(7, 4)59#define MT_EE_NIC_CONF_RX_MASK GENMASK(3, 0)6061#define MT_EE_HW_CONF1_TX_MASK GENMASK(2, 0)6263#define MT_EE_NIC_CONF_TSSI_2G BIT(5)64#define MT_EE_NIC_CONF_TSSI_5G BIT(6)6566#define MT_EE_NIC_WIFI_CONF_BAND_SEL GENMASK(5, 4)67enum mt7615_eeprom_band {68MT_EE_DUAL_BAND,69MT_EE_5GHZ,70MT_EE_2GHZ,71MT_EE_DBDC,72};7374enum mt7615_channel_group {75MT_CH_5G_JAPAN,76MT_CH_5G_UNII_1,77MT_CH_5G_UNII_2A,78MT_CH_5G_UNII_2B,79MT_CH_5G_UNII_2E_1,80MT_CH_5G_UNII_2E_2,81MT_CH_5G_UNII_2E_3,82MT_CH_5G_UNII_3,83__MT_CH_MAX84};8586static inline enum mt7615_channel_group87mt7615_get_channel_group(int channel)88{89if (channel >= 184 && channel <= 196)90return MT_CH_5G_JAPAN;91if (channel <= 48)92return MT_CH_5G_UNII_1;93if (channel <= 64)94return MT_CH_5G_UNII_2A;95if (channel <= 114)96return MT_CH_5G_UNII_2E_1;97if (channel <= 144)98return MT_CH_5G_UNII_2E_2;99if (channel <= 161)100return MT_CH_5G_UNII_2E_3;101return MT_CH_5G_UNII_3;102}103104static inline bool105mt7615_ext_pa_enabled(struct mt7615_dev *dev, enum nl80211_band band)106{107u8 *eep = dev->mt76.eeprom.data;108109if (band == NL80211_BAND_5GHZ)110return !(eep[MT_EE_NIC_CONF_1 + 1] & MT_EE_NIC_CONF_TSSI_5G);111else112return !(eep[MT_EE_NIC_CONF_1 + 1] & MT_EE_NIC_CONF_TSSI_2G);113}114115#endif116117118