Lines Matching +full:eeprom +full:- +full:data
1 // SPDX-License-Identifier: ISC
5 #include "eeprom.h"
8 mt7603_efuse_read(struct mt7603_dev *dev, u32 base, u16 addr, u8 *data) in mt7603_efuse_read() argument
21 return -ETIMEDOUT; in mt7603_efuse_read()
28 memset(data, 0xff, 16); in mt7603_efuse_read()
34 put_unaligned_le32(val, data + 4 * i); in mt7603_efuse_read()
51 dev->mt76.otp.data = devm_kzalloc(dev->mt76.dev, len, GFP_KERNEL); in mt7603_efuse_init()
52 dev->mt76.otp.size = len; in mt7603_efuse_init()
53 if (!dev->mt76.otp.data) in mt7603_efuse_init()
54 return -ENOMEM; in mt7603_efuse_init()
56 buf = dev->mt76.otp.data; in mt7603_efuse_init()
104 struct device_node *np = dev->mt76.dev->of_node; in mt7603_apply_cal_free_data()
105 u8 *eeprom = dev->mt76.eeprom.data; in mt7603_apply_cal_free_data() local
109 if (!np || !of_property_read_bool(np, "mediatek,eeprom-merge-otp")) in mt7603_apply_cal_free_data()
116 n -= 4; in mt7603_apply_cal_free_data()
121 eeprom[offset] = efuse[offset]; in mt7603_apply_cal_free_data()
130 ret = mt76_eeprom_init(&dev->mt76, MT7603_EEPROM_SIZE); in mt7603_eeprom_load()
139 u16 val = get_unaligned_le16(dev->eeprom.data); in mt7603_check_eeprom()
147 return -EINVAL; in mt7603_check_eeprom()
158 u8 *eeprom; in mt7603_eeprom_init() local
165 if (dev->mt76.otp.data) { in mt7603_eeprom_init()
166 if (mt7603_check_eeprom(&dev->mt76) == 0) in mt7603_eeprom_init()
167 mt7603_apply_cal_free_data(dev, dev->mt76.otp.data); in mt7603_eeprom_init()
169 memcpy(dev->mt76.eeprom.data, dev->mt76.otp.data, in mt7603_eeprom_init()
173 eeprom = (u8 *)dev->mt76.eeprom.data; in mt7603_eeprom_init()
174 dev->mphy.cap.has_2ghz = true; in mt7603_eeprom_init()
175 memcpy(dev->mphy.macaddr, eeprom + MT_EE_MAC_ADDR, ETH_ALEN); in mt7603_eeprom_init()
178 dev->mphy.antenna_mask = 3; in mt7603_eeprom_init()
179 if (FIELD_GET(MT_EE_NIC_CONF_0_RX_PATH, eeprom[MT_EE_NIC_CONF_0]) == 1 || in mt7603_eeprom_init()
180 FIELD_GET(MT_EE_NIC_CONF_0_TX_PATH, eeprom[MT_EE_NIC_CONF_0]) == 1 || in mt7603_eeprom_init()
182 dev->mphy.antenna_mask = 1; in mt7603_eeprom_init()
184 mt76_eeprom_override(&dev->mphy); in mt7603_eeprom_init()