brintos

brintos / linux-shallow public Read only

0
0
Text · 2.9 KiB · a67fbb9 Raw
117 lines · c
1/* SPDX-License-Identifier: ISC */2/* Copyright (C) 2019 MediaTek Inc. */3 4#ifndef __MT7615_EEPROM_H5#define __MT7615_EEPROM_H6 7#include "mt7615.h"8 9 10#define MT7615_EEPROM_DCOC_OFFSET		MT7615_EEPROM_SIZE11#define MT7615_EEPROM_DCOC_SIZE			25612#define MT7615_EEPROM_DCOC_COUNT		3413 14#define MT7615_EEPROM_TXDPD_OFFSET		(MT7615_EEPROM_SIZE + \15						 MT7615_EEPROM_DCOC_COUNT * \16						 MT7615_EEPROM_DCOC_SIZE)17#define MT7615_EEPROM_TXDPD_SIZE		21618#define MT7615_EEPROM_TXDPD_COUNT		(44 + 3)19 20#define MT7615_EEPROM_FULL_SIZE			(MT7615_EEPROM_TXDPD_OFFSET + \21						 MT7615_EEPROM_TXDPD_COUNT * \22						 MT7615_EEPROM_TXDPD_SIZE)23 24enum mt7615_eeprom_field {25	MT_EE_CHIP_ID =				0x000,26	MT_EE_VERSION =				0x002,27	MT_EE_MAC_ADDR =			0x004,28	MT_EE_NIC_CONF_0 =			0x034,29	MT_EE_NIC_CONF_1 =			0x036,30	MT_EE_WIFI_CONF =			0x03e,31	MT_EE_CALDATA_FLASH =			0x052,32	MT_EE_TX0_2G_TARGET_POWER =		0x058,33	MT_EE_TX0_5G_G0_TARGET_POWER =		0x070,34	MT7663_EE_5G_RATE_POWER =		0x089,35	MT_EE_TX1_5G_G0_TARGET_POWER =		0x098,36	MT_EE_2G_RATE_POWER =			0x0be,37	MT_EE_5G_RATE_POWER =			0x0d5,38	MT7663_EE_TX0_2G_TARGET_POWER =		0x0e3,39	MT_EE_EXT_PA_2G_TARGET_POWER =		0x0f2,40	MT_EE_EXT_PA_5G_TARGET_POWER =		0x0f3,41	MT_EE_TX2_5G_G0_TARGET_POWER =		0x142,42	MT_EE_TX3_5G_G0_TARGET_POWER =		0x16a,43	MT7663_EE_HW_CONF1 =			0x1b0,44	MT7663_EE_TX0_5G_G0_TARGET_POWER =	0x245,45	MT7663_EE_TX1_5G_G0_TARGET_POWER =	0x2b5,46 47	MT7615_EE_MAX =				0x3bf,48	MT7622_EE_MAX =				0x3db,49	MT7663_EE_MAX =				0x600,50};51 52#define MT_EE_RATE_POWER_MASK			GENMASK(5, 0)53#define MT_EE_RATE_POWER_SIGN			BIT(6)54#define MT_EE_RATE_POWER_EN			BIT(7)55 56#define MT_EE_CALDATA_FLASH_TX_DPD		BIT(0)57#define MT_EE_CALDATA_FLASH_RX_CAL		BIT(1)58 59#define MT_EE_NIC_CONF_TX_MASK			GENMASK(7, 4)60#define MT_EE_NIC_CONF_RX_MASK			GENMASK(3, 0)61 62#define MT_EE_HW_CONF1_TX_MASK			GENMASK(2, 0)63 64#define MT_EE_NIC_CONF_TSSI_2G			BIT(5)65#define MT_EE_NIC_CONF_TSSI_5G			BIT(6)66 67#define MT_EE_NIC_WIFI_CONF_BAND_SEL		GENMASK(5, 4)68enum mt7615_eeprom_band {69	MT_EE_DUAL_BAND,70	MT_EE_5GHZ,71	MT_EE_2GHZ,72	MT_EE_DBDC,73};74 75enum mt7615_channel_group {76	MT_CH_5G_JAPAN,77	MT_CH_5G_UNII_1,78	MT_CH_5G_UNII_2A,79	MT_CH_5G_UNII_2B,80	MT_CH_5G_UNII_2E_1,81	MT_CH_5G_UNII_2E_2,82	MT_CH_5G_UNII_2E_3,83	MT_CH_5G_UNII_3,84	__MT_CH_MAX85};86 87static inline enum mt7615_channel_group88mt7615_get_channel_group(int channel)89{90	if (channel >= 184 && channel <= 196)91		return MT_CH_5G_JAPAN;92	if (channel <= 48)93		return MT_CH_5G_UNII_1;94	if (channel <= 64)95		return MT_CH_5G_UNII_2A;96	if (channel <= 114)97		return MT_CH_5G_UNII_2E_1;98	if (channel <= 144)99		return MT_CH_5G_UNII_2E_2;100	if (channel <= 161)101		return MT_CH_5G_UNII_2E_3;102	return MT_CH_5G_UNII_3;103}104 105static inline bool106mt7615_ext_pa_enabled(struct mt7615_dev *dev, enum nl80211_band band)107{108	u8 *eep = dev->mt76.eeprom.data;109 110	if (band == NL80211_BAND_5GHZ)111		return !(eep[MT_EE_NIC_CONF_1 + 1] & MT_EE_NIC_CONF_TSSI_5G);112	else113		return !(eep[MT_EE_NIC_CONF_1 + 1] & MT_EE_NIC_CONF_TSSI_2G);114}115 116#endif117