Merge branch 'x86-pti-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-block.git] / drivers / net / wireless / mediatek / mt76 / mt7615 / eeprom.h
CommitLineData
04b8e659
RL
1/* SPDX-License-Identifier: ISC */
2/* Copyright (C) 2019 MediaTek Inc. */
3
4#ifndef __MT7615_EEPROM_H
5#define __MT7615_EEPROM_H
6
7#include "mt7615.h"
8
9enum mt7615_eeprom_field {
10 MT_EE_CHIP_ID = 0x000,
11 MT_EE_VERSION = 0x002,
12 MT_EE_MAC_ADDR = 0x004,
13 MT_EE_NIC_CONF_0 = 0x034,
16a2f8e2 14 MT_EE_NIC_CONF_1 = 0x036,
c988a77f 15 MT_EE_WIFI_CONF = 0x03e,
61d36824
LB
16 MT_EE_TX0_2G_TARGET_POWER = 0x058,
17 MT_EE_TX0_5G_G0_TARGET_POWER = 0x070,
18 MT_EE_TX1_5G_G0_TARGET_POWER = 0x098,
16a2f8e2
LB
19 MT_EE_EXT_PA_2G_TARGET_POWER = 0x0f2,
20 MT_EE_EXT_PA_5G_TARGET_POWER = 0x0f3,
61d36824
LB
21 MT_EE_TX2_5G_G0_TARGET_POWER = 0x142,
22 MT_EE_TX3_5G_G0_TARGET_POWER = 0x16a,
04b8e659
RL
23
24 __MT_EE_MAX = 0x3bf
25};
26
acf5457f
LB
27#define MT_EE_NIC_CONF_TX_MASK GENMASK(7, 4)
28#define MT_EE_NIC_CONF_RX_MASK GENMASK(3, 0)
29
16a2f8e2
LB
30#define MT_EE_NIC_CONF_TSSI_2G BIT(5)
31#define MT_EE_NIC_CONF_TSSI_5G BIT(6)
32
c988a77f
LB
33#define MT_EE_NIC_WIFI_CONF_BAND_SEL GENMASK(5, 4)
34enum mt7615_eeprom_band {
35 MT_EE_DUAL_BAND,
36 MT_EE_5GHZ,
37 MT_EE_2GHZ,
38 MT_EE_DBDC,
39};
40
61d36824
LB
41enum mt7615_channel_group {
42 MT_CH_5G_JAPAN,
43 MT_CH_5G_UNII_1,
44 MT_CH_5G_UNII_2A,
45 MT_CH_5G_UNII_2B,
46 MT_CH_5G_UNII_2E_1,
47 MT_CH_5G_UNII_2E_2,
48 MT_CH_5G_UNII_2E_3,
49 MT_CH_5G_UNII_3,
50 __MT_CH_MAX
51};
52
53static inline enum mt7615_channel_group
54mt7615_get_channel_group(int channel)
55{
56 if (channel >= 184 && channel <= 196)
57 return MT_CH_5G_JAPAN;
58 if (channel <= 48)
59 return MT_CH_5G_UNII_1;
60 if (channel <= 64)
61 return MT_CH_5G_UNII_2A;
62 if (channel <= 114)
63 return MT_CH_5G_UNII_2E_1;
64 if (channel <= 144)
65 return MT_CH_5G_UNII_2E_2;
66 if (channel <= 161)
67 return MT_CH_5G_UNII_2E_3;
68 return MT_CH_5G_UNII_3;
69}
70
16a2f8e2
LB
71static inline bool
72mt7615_ext_pa_enabled(struct mt7615_dev *dev, enum nl80211_band band)
73{
74 u8 *eep = dev->mt76.eeprom.data;
75
76 if (band == NL80211_BAND_5GHZ)
77 return !(eep[MT_EE_NIC_CONF_1 + 1] & MT_EE_NIC_CONF_TSSI_5G);
78 else
79 return !(eep[MT_EE_NIC_CONF_1 + 1] & MT_EE_NIC_CONF_TSSI_2G);
80}
81
04b8e659 82#endif