162306a36Sopenharmony_ci/* SPDX-License-Identifier: ISC */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright (C) 2022 MediaTek Inc.
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef __MT7996_EEPROM_H
762306a36Sopenharmony_ci#define __MT7996_EEPROM_H
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include "mt7996.h"
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_cienum mt7996_eeprom_field {
1262306a36Sopenharmony_ci	MT_EE_CHIP_ID =		0x000,
1362306a36Sopenharmony_ci	MT_EE_VERSION =		0x002,
1462306a36Sopenharmony_ci	MT_EE_MAC_ADDR =	0x004,
1562306a36Sopenharmony_ci	MT_EE_MAC_ADDR2 =	0x00a,
1662306a36Sopenharmony_ci	MT_EE_WIFI_CONF =	0x190,
1762306a36Sopenharmony_ci	MT_EE_MAC_ADDR3 =	0x2c0,
1862306a36Sopenharmony_ci	MT_EE_RATE_DELTA_2G =	0x1400,
1962306a36Sopenharmony_ci	MT_EE_RATE_DELTA_5G =	0x147d,
2062306a36Sopenharmony_ci	MT_EE_RATE_DELTA_6G =	0x154a,
2162306a36Sopenharmony_ci	MT_EE_TX0_POWER_2G =	0x1300,
2262306a36Sopenharmony_ci	MT_EE_TX0_POWER_5G =	0x1301,
2362306a36Sopenharmony_ci	MT_EE_TX0_POWER_6G =	0x1310,
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci	__MT_EE_MAX =	0x1dff,
2662306a36Sopenharmony_ci};
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ci#define MT_EE_WIFI_CONF0_TX_PATH		GENMASK(2, 0)
2962306a36Sopenharmony_ci#define MT_EE_WIFI_CONF0_BAND_SEL		GENMASK(2, 0)
3062306a36Sopenharmony_ci#define MT_EE_WIFI_CONF1_BAND_SEL		GENMASK(5, 3)
3162306a36Sopenharmony_ci#define MT_EE_WIFI_CONF2_BAND_SEL		GENMASK(2, 0)
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci#define MT_EE_WIFI_CONF1_TX_PATH_BAND0		GENMASK(5, 3)
3462306a36Sopenharmony_ci#define MT_EE_WIFI_CONF2_TX_PATH_BAND1		GENMASK(2, 0)
3562306a36Sopenharmony_ci#define MT_EE_WIFI_CONF2_TX_PATH_BAND2		GENMASK(5, 3)
3662306a36Sopenharmony_ci#define MT_EE_WIFI_CONF4_STREAM_NUM_BAND0	GENMASK(5, 3)
3762306a36Sopenharmony_ci#define MT_EE_WIFI_CONF5_STREAM_NUM_BAND1	GENMASK(2, 0)
3862306a36Sopenharmony_ci#define MT_EE_WIFI_CONF5_STREAM_NUM_BAND2	GENMASK(5, 3)
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ci#define MT_EE_RATE_DELTA_MASK			GENMASK(5, 0)
4162306a36Sopenharmony_ci#define MT_EE_RATE_DELTA_SIGN			BIT(6)
4262306a36Sopenharmony_ci#define MT_EE_RATE_DELTA_EN			BIT(7)
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_cienum mt7996_eeprom_band {
4562306a36Sopenharmony_ci	MT_EE_BAND_SEL_DEFAULT,
4662306a36Sopenharmony_ci	MT_EE_BAND_SEL_2GHZ,
4762306a36Sopenharmony_ci	MT_EE_BAND_SEL_5GHZ,
4862306a36Sopenharmony_ci	MT_EE_BAND_SEL_6GHZ,
4962306a36Sopenharmony_ci};
5062306a36Sopenharmony_ci
5162306a36Sopenharmony_cistatic inline int
5262306a36Sopenharmony_cimt7996_get_channel_group_5g(int channel)
5362306a36Sopenharmony_ci{
5462306a36Sopenharmony_ci	if (channel <= 64)
5562306a36Sopenharmony_ci		return 0;
5662306a36Sopenharmony_ci	if (channel <= 96)
5762306a36Sopenharmony_ci		return 1;
5862306a36Sopenharmony_ci	if (channel <= 128)
5962306a36Sopenharmony_ci		return 2;
6062306a36Sopenharmony_ci	if (channel <= 144)
6162306a36Sopenharmony_ci		return 3;
6262306a36Sopenharmony_ci	return 4;
6362306a36Sopenharmony_ci}
6462306a36Sopenharmony_ci
6562306a36Sopenharmony_cistatic inline int
6662306a36Sopenharmony_cimt7996_get_channel_group_6g(int channel)
6762306a36Sopenharmony_ci{
6862306a36Sopenharmony_ci	if (channel <= 29)
6962306a36Sopenharmony_ci		return 0;
7062306a36Sopenharmony_ci
7162306a36Sopenharmony_ci	return DIV_ROUND_UP(channel - 29, 32);
7262306a36Sopenharmony_ci}
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ci#endif
75