drivers/net/wireless/mediatek/mt76/mt7615/eeprom.h

Source file repositories/reference/linux-study-clean/drivers/net/wireless/mediatek/mt76/mt7615/eeprom.h

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/mediatek/mt76/mt7615/eeprom.h
Extension
.h
Size
2978 bytes
Lines
117
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

#ifndef __MT7615_EEPROM_H
#define __MT7615_EEPROM_H

#include "mt7615.h"


#define MT7615_EEPROM_DCOC_OFFSET		MT7615_EEPROM_SIZE
#define MT7615_EEPROM_DCOC_SIZE			256
#define MT7615_EEPROM_DCOC_COUNT		34

#define MT7615_EEPROM_TXDPD_OFFSET		(MT7615_EEPROM_SIZE + \
						 MT7615_EEPROM_DCOC_COUNT * \
						 MT7615_EEPROM_DCOC_SIZE)
#define MT7615_EEPROM_TXDPD_SIZE		216
#define MT7615_EEPROM_TXDPD_COUNT		(44 + 3)

#define MT7615_EEPROM_FULL_SIZE			(MT7615_EEPROM_TXDPD_OFFSET + \
						 MT7615_EEPROM_TXDPD_COUNT * \
						 MT7615_EEPROM_TXDPD_SIZE)

enum mt7615_eeprom_field {
	MT_EE_CHIP_ID =				0x000,
	MT_EE_VERSION =				0x002,
	MT_EE_MAC_ADDR =			0x004,
	MT_EE_NIC_CONF_0 =			0x034,
	MT_EE_NIC_CONF_1 =			0x036,
	MT_EE_WIFI_CONF =			0x03e,
	MT_EE_CALDATA_FLASH =			0x052,
	MT_EE_TX0_2G_TARGET_POWER =		0x058,
	MT_EE_TX0_5G_G0_TARGET_POWER =		0x070,
	MT7663_EE_5G_RATE_POWER =		0x089,
	MT_EE_TX1_5G_G0_TARGET_POWER =		0x098,
	MT_EE_2G_RATE_POWER =			0x0be,
	MT_EE_5G_RATE_POWER =			0x0d5,
	MT7663_EE_TX0_2G_TARGET_POWER =		0x0e3,
	MT_EE_EXT_PA_2G_TARGET_POWER =		0x0f2,
	MT_EE_EXT_PA_5G_TARGET_POWER =		0x0f3,
	MT_EE_TX2_5G_G0_TARGET_POWER =		0x142,
	MT_EE_TX3_5G_G0_TARGET_POWER =		0x16a,
	MT7663_EE_HW_CONF1 =			0x1b0,
	MT7663_EE_TX0_5G_G0_TARGET_POWER =	0x245,
	MT7663_EE_TX1_5G_G0_TARGET_POWER =	0x2b5,

	MT7615_EE_MAX =				0x3bf,
	MT7622_EE_MAX =				0x3db,
	MT7663_EE_MAX =				0x600,
};

#define MT_EE_RATE_POWER_MASK			GENMASK(5, 0)
#define MT_EE_RATE_POWER_SIGN			BIT(6)
#define MT_EE_RATE_POWER_EN			BIT(7)

#define MT_EE_CALDATA_FLASH_TX_DPD		BIT(0)
#define MT_EE_CALDATA_FLASH_RX_CAL		BIT(1)

#define MT_EE_NIC_CONF_TX_MASK			GENMASK(7, 4)
#define MT_EE_NIC_CONF_RX_MASK			GENMASK(3, 0)

#define MT_EE_HW_CONF1_TX_MASK			GENMASK(2, 0)

#define MT_EE_NIC_CONF_TSSI_2G			BIT(5)
#define MT_EE_NIC_CONF_TSSI_5G			BIT(6)

#define MT_EE_NIC_WIFI_CONF_BAND_SEL		GENMASK(5, 4)
enum mt7615_eeprom_band {
	MT_EE_DUAL_BAND,
	MT_EE_5GHZ,
	MT_EE_2GHZ,
	MT_EE_DBDC,
};

enum mt7615_channel_group {
	MT_CH_5G_JAPAN,
	MT_CH_5G_UNII_1,
	MT_CH_5G_UNII_2A,
	MT_CH_5G_UNII_2B,
	MT_CH_5G_UNII_2E_1,
	MT_CH_5G_UNII_2E_2,
	MT_CH_5G_UNII_2E_3,
	MT_CH_5G_UNII_3,
	__MT_CH_MAX
};

static inline enum mt7615_channel_group
mt7615_get_channel_group(int channel)
{
	if (channel >= 184 && channel <= 196)
		return MT_CH_5G_JAPAN;
	if (channel <= 48)
		return MT_CH_5G_UNII_1;

Annotation

Implementation Notes