From 03a9926453105c067e40cebda7d15da0d4a763e4 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Wed, 25 Aug 2021 02:32:16 +0100 Subject: [PATCH] mt76: support reading EEPROM data embedded in fdt 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 Signed-off-by: Felix Fietkau --- eeprom.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/eeprom.c b/eeprom.c index 176d62a0..a74667ee 100644 --- a/eeprom.c +++ b/eeprom.c @@ -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;