1cbb3ec25SBjoern A. Zeeb /* SPDX-License-Identifier: ISC */
2cbb3ec25SBjoern A. Zeeb /*
3cbb3ec25SBjoern A. Zeeb * Copyright (C) 2022 MediaTek Inc.
4cbb3ec25SBjoern A. Zeeb */
5cbb3ec25SBjoern A. Zeeb
6cbb3ec25SBjoern A. Zeeb #ifndef __MT7996_EEPROM_H
7cbb3ec25SBjoern A. Zeeb #define __MT7996_EEPROM_H
8cbb3ec25SBjoern A. Zeeb
9cbb3ec25SBjoern A. Zeeb #include "mt7996.h"
10cbb3ec25SBjoern A. Zeeb
11cbb3ec25SBjoern A. Zeeb enum mt7996_eeprom_field {
12cbb3ec25SBjoern A. Zeeb MT_EE_CHIP_ID = 0x000,
13cbb3ec25SBjoern A. Zeeb MT_EE_VERSION = 0x002,
14cbb3ec25SBjoern A. Zeeb MT_EE_MAC_ADDR = 0x004,
15cbb3ec25SBjoern A. Zeeb MT_EE_MAC_ADDR2 = 0x00a,
16cbb3ec25SBjoern A. Zeeb MT_EE_WIFI_CONF = 0x190,
17cbb3ec25SBjoern A. Zeeb MT_EE_MAC_ADDR3 = 0x2c0,
18cbb3ec25SBjoern A. Zeeb MT_EE_RATE_DELTA_2G = 0x1400,
19cbb3ec25SBjoern A. Zeeb MT_EE_RATE_DELTA_5G = 0x147d,
20cbb3ec25SBjoern A. Zeeb MT_EE_RATE_DELTA_6G = 0x154a,
21cbb3ec25SBjoern A. Zeeb MT_EE_TX0_POWER_2G = 0x1300,
22cbb3ec25SBjoern A. Zeeb MT_EE_TX0_POWER_5G = 0x1301,
23cbb3ec25SBjoern A. Zeeb MT_EE_TX0_POWER_6G = 0x1310,
24cbb3ec25SBjoern A. Zeeb
25cbb3ec25SBjoern A. Zeeb __MT_EE_MAX = 0x1dff,
26cbb3ec25SBjoern A. Zeeb };
27cbb3ec25SBjoern A. Zeeb
28cbb3ec25SBjoern A. Zeeb #define MT_EE_WIFI_CONF0_TX_PATH GENMASK(2, 0)
29cbb3ec25SBjoern A. Zeeb #define MT_EE_WIFI_CONF0_BAND_SEL GENMASK(2, 0)
30cbb3ec25SBjoern A. Zeeb #define MT_EE_WIFI_CONF1_BAND_SEL GENMASK(5, 3)
31cbb3ec25SBjoern A. Zeeb #define MT_EE_WIFI_CONF2_BAND_SEL GENMASK(2, 0)
32cbb3ec25SBjoern A. Zeeb
33cbb3ec25SBjoern A. Zeeb #define MT_EE_WIFI_CONF1_TX_PATH_BAND0 GENMASK(5, 3)
34cbb3ec25SBjoern A. Zeeb #define MT_EE_WIFI_CONF2_TX_PATH_BAND1 GENMASK(2, 0)
35cbb3ec25SBjoern A. Zeeb #define MT_EE_WIFI_CONF2_TX_PATH_BAND2 GENMASK(5, 3)
36*8ba4d145SBjoern A. Zeeb #define MT_EE_WIFI_CONF3_RX_PATH_BAND0 GENMASK(2, 0)
37*8ba4d145SBjoern A. Zeeb #define MT_EE_WIFI_CONF3_RX_PATH_BAND1 GENMASK(5, 3)
38*8ba4d145SBjoern A. Zeeb #define MT_EE_WIFI_CONF4_RX_PATH_BAND2 GENMASK(2, 0)
39cbb3ec25SBjoern A. Zeeb #define MT_EE_WIFI_CONF4_STREAM_NUM_BAND0 GENMASK(5, 3)
40cbb3ec25SBjoern A. Zeeb #define MT_EE_WIFI_CONF5_STREAM_NUM_BAND1 GENMASK(2, 0)
41cbb3ec25SBjoern A. Zeeb #define MT_EE_WIFI_CONF5_STREAM_NUM_BAND2 GENMASK(5, 3)
42cbb3ec25SBjoern A. Zeeb
43*8ba4d145SBjoern A. Zeeb #define MT_EE_WIFI_PA_LNA_CONFIG GENMASK(1, 0)
44*8ba4d145SBjoern A. Zeeb
45cbb3ec25SBjoern A. Zeeb #define MT_EE_RATE_DELTA_MASK GENMASK(5, 0)
46cbb3ec25SBjoern A. Zeeb #define MT_EE_RATE_DELTA_SIGN BIT(6)
47cbb3ec25SBjoern A. Zeeb #define MT_EE_RATE_DELTA_EN BIT(7)
48cbb3ec25SBjoern A. Zeeb
49cbb3ec25SBjoern A. Zeeb enum mt7996_eeprom_band {
50cbb3ec25SBjoern A. Zeeb MT_EE_BAND_SEL_DEFAULT,
51cbb3ec25SBjoern A. Zeeb MT_EE_BAND_SEL_2GHZ,
52cbb3ec25SBjoern A. Zeeb MT_EE_BAND_SEL_5GHZ,
53cbb3ec25SBjoern A. Zeeb MT_EE_BAND_SEL_6GHZ,
54cbb3ec25SBjoern A. Zeeb };
55cbb3ec25SBjoern A. Zeeb
56cbb3ec25SBjoern A. Zeeb static inline int
mt7996_get_channel_group_5g(int channel)57cbb3ec25SBjoern A. Zeeb mt7996_get_channel_group_5g(int channel)
58cbb3ec25SBjoern A. Zeeb {
59cbb3ec25SBjoern A. Zeeb if (channel <= 64)
60cbb3ec25SBjoern A. Zeeb return 0;
61cbb3ec25SBjoern A. Zeeb if (channel <= 96)
62cbb3ec25SBjoern A. Zeeb return 1;
63cbb3ec25SBjoern A. Zeeb if (channel <= 128)
64cbb3ec25SBjoern A. Zeeb return 2;
65cbb3ec25SBjoern A. Zeeb if (channel <= 144)
66cbb3ec25SBjoern A. Zeeb return 3;
67cbb3ec25SBjoern A. Zeeb return 4;
68cbb3ec25SBjoern A. Zeeb }
69cbb3ec25SBjoern A. Zeeb
70cbb3ec25SBjoern A. Zeeb static inline int
mt7996_get_channel_group_6g(int channel)71cbb3ec25SBjoern A. Zeeb mt7996_get_channel_group_6g(int channel)
72cbb3ec25SBjoern A. Zeeb {
73cbb3ec25SBjoern A. Zeeb if (channel <= 29)
74cbb3ec25SBjoern A. Zeeb return 0;
75cbb3ec25SBjoern A. Zeeb
76cbb3ec25SBjoern A. Zeeb return DIV_ROUND_UP(channel - 29, 32);
77cbb3ec25SBjoern A. Zeeb }
78cbb3ec25SBjoern A. Zeeb
79cbb3ec25SBjoern A. Zeeb #endif
80