Skip to content

Commit

Permalink
mt76: support reading EEPROM data embedded in fdt
Browse files Browse the repository at this point in the history
Some platforms boot from SD card and don't come with calibration data
stored anywhere on the board.
As EEPROM data is rather small it can be embedded into the device tree
to be loaded from there by the mt76.

Signed-off-by: Daniel Golle <daniel@makrotopia.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
  • Loading branch information
Daniel Golle authored and Felix Fietkau committed Oct 20, 2021
1 parent c4a784e commit 255d380
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions drivers/net/wireless/mediatek/mt76/eeprom.c
Original file line number Diff line number Diff line change
@@ -15,6 +15,7 @@ int mt76_get_of_eeprom(struct mt76_dev *dev, void *eep, int offset, int len)
struct device_node *np = dev->dev->of_node;
struct mtd_info *mtd;
const __be32 *list;
const void *data;
const char *part;
phandle phandle;
int size;
@@ -24,6 +25,16 @@ int mt76_get_of_eeprom(struct mt76_dev *dev, void *eep, int offset, int len)
if (!np)
return -ENOENT;

data = of_get_property(np, "mediatek,eeprom-data", &size);
if (data) {
if (size > len)
return -EINVAL;

memcpy(eep, data, size);

return 0;
}

list = of_get_property(np, "mediatek,mtd-eeprom", &size);
if (!list)
return -ENOENT;

0 comments on commit 255d380

Please sign in to comment.