Lines Matching +full:eeprom +full:- +full:merge +full:- +full:otp

1 // SPDX-License-Identifier: ISC
13 #include "eeprom.h"
28 return -ETIMEDOUT;
53 if (is_mt7663(&dev->mt76))
60 dev->mt76.otp.data = devm_kzalloc(dev->mt76.dev, len, GFP_KERNEL);
61 dev->mt76.otp.size = len;
62 if (!dev->mt76.otp.data)
63 return -ENOMEM;
65 buf = dev->mt76.otp.data;
87 ret = mt76_eeprom_init(&dev->mt76, MT7615_EEPROM_FULL_SIZE);
96 u16 val = get_unaligned_le16(dev->eeprom.data);
104 return -EINVAL;
111 u8 val, *eeprom = dev->mt76.eeprom.data;
113 if (is_mt7663(&dev->mt76)) {
115 dev->mphy.cap.has_2ghz = true;
116 dev->mphy.cap.has_5ghz = true;
120 if (is_mt7622(&dev->mt76)) {
122 dev->mphy.cap.has_2ghz = true;
126 if (is_mt7611(&dev->mt76)) {
128 dev->mphy.cap.has_5ghz = true;
133 eeprom[MT_EE_WIFI_CONF]);
136 dev->mphy.cap.has_5ghz = true;
139 dev->dbdc_support = true;
142 dev->mphy.cap.has_2ghz = true;
145 dev->mphy.cap.has_2ghz = true;
146 dev->mphy.cap.has_5ghz = true;
153 u8 *eeprom = dev->mt76.eeprom.data;
158 if (is_mt7663(&dev->mt76)) {
161 eeprom[MT7663_EE_HW_CONF1]);
165 /* read tx-rx mask from eeprom */
170 eeprom[MT_EE_NIC_CONF_0]);
175 dev->chainmask = BIT(tx_mask) - 1;
176 dev->mphy.antenna_mask = dev->chainmask;
177 dev->mphy.chainmask = dev->chainmask;
187 return -EINVAL;
189 if (chan->band == NL80211_BAND_2GHZ)
192 group = mt7615_get_channel_group(chan->hw_value);
207 if (is_mt7663(&dev->mt76))
212 return -EINVAL;
215 if (mt7615_ext_pa_enabled(dev, chan->band)) {
216 if (chan->band == NL80211_BAND_2GHZ)
223 if (chan->band == NL80211_BAND_2GHZ) {
226 int group = mt7615_get_channel_group(chan->hw_value);
253 if (is_mt7663(&dev->mt76)) {
285 u8 *eeprom = dev->mt76.eeprom.data;
286 u8 *otp = dev->mt76.otp.data;
289 if (!otp)
293 if (!otp[ical[i]])
297 eeprom[ical[i]] = otp[ical[i]];
300 eeprom[ical_nocheck[i]] = otp[ical_nocheck[i]];
308 u8 *eeprom = dev->mt76.eeprom.data;
309 u8 *otp = dev->mt76.otp.data;
312 if (!otp)
316 if (!otp[ical[i]])
319 eeprom[ical[i]] = otp[ical[i]];
327 struct device_node *np = dev->mt76.dev->of_node;
329 if (!np || !of_property_read_bool(np, "mediatek,eeprom-merge-otp"))
332 switch (mt76_chip(&dev->mt76)) {
352 ret = mt7615_check_eeprom(&dev->mt76);
353 if (ret && dev->mt76.otp.data) {
354 memcpy(dev->mt76.eeprom.data, dev->mt76.otp.data,
355 dev->mt76.otp.size);
357 dev->flash_eeprom = true;
363 memcpy(dev->mphy.macaddr, dev->mt76.eeprom.data + MT_EE_MAC_ADDR,
365 memcpy(dev->mphy.macaddr, (u8 *)dev->mt76.eeprom.data + MT_EE_MAC_ADDR,
369 mt76_eeprom_override(&dev->mphy);