* [PATCH 0/3] wifi: mt76: remove mediatek,mtd-eeprom
@ 2026-04-27 3:44 Rosen Penev
2026-04-27 3:44 ` [PATCH 1/3] MIPS: dts: ralink: gardena_smart_gateway_mt7688: use nvmem for EEPROM Rosen Penev
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Rosen Penev @ 2026-04-27 3:44 UTC (permalink / raw)
To: devicetree
Cc: Felix Fietkau, Lorenzo Bianconi, Ryder Lee, Shayne Chen,
Sean Wang, Johannes Berg, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Matthias Brugger, AngeloGioacchino Del Regno,
Thomas Bogendoerfer, open list:MEDIATEK MT76 WIRELESS LAN DRIVER,
open list:ARM/Mediatek SoC support,
moderated list:ARM/Mediatek SoC support,
moderated list:ARM/Mediatek SoC support, open list:MIPS
mediatek,mtd-eeprom predates nvmem which is used everywhere to grab
eeprom and mac-address data from MTD devices.
Transition the one place to nvmem and remove the binding to discourage
use.
Rosen Penev (3):
MIPS: dts: ralink: gardena_smart_gateway_mt7688: use nvmem for EEPROM
dt-bindings: net: wireless: mt76: remove mediatek,mtd-eeprom
wifi: mt76: remove mt76_get_of_data_from_mtd
.../bindings/net/wireless/mediatek,mt76.yaml | 19 +---
.../ralink/gardena_smart_gateway_mt7688.dts | 17 +++-
drivers/net/wireless/mediatek/mt76/eeprom.c | 87 -------------------
drivers/net/wireless/mediatek/mt76/mt76.h | 1 -
.../wireless/mediatek/mt76/mt7915/eeprom.c | 4 -
5 files changed, 17 insertions(+), 111 deletions(-)
--
2.54.0
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/3] MIPS: dts: ralink: gardena_smart_gateway_mt7688: use nvmem for EEPROM
2026-04-27 3:44 [PATCH 0/3] wifi: mt76: remove mediatek,mtd-eeprom Rosen Penev
@ 2026-04-27 3:44 ` Rosen Penev
2026-04-27 3:44 ` [PATCH 2/3] dt-bindings: net: wireless: mt76: remove mediatek,mtd-eeprom Rosen Penev
2026-04-27 3:44 ` [PATCH 3/3] wifi: mt76: remove mt76_get_of_data_from_mtd Rosen Penev
2 siblings, 0 replies; 4+ messages in thread
From: Rosen Penev @ 2026-04-27 3:44 UTC (permalink / raw)
To: devicetree
Cc: Felix Fietkau, Lorenzo Bianconi, Ryder Lee, Shayne Chen,
Sean Wang, Johannes Berg, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Matthias Brugger, AngeloGioacchino Del Regno,
Thomas Bogendoerfer, open list:MEDIATEK MT76 WIRELESS LAN DRIVER,
open list:ARM/Mediatek SoC support,
moderated list:ARM/Mediatek SoC support,
moderated list:ARM/Mediatek SoC support, open list:MIPS
mediatek,mtd-eeprom is a deprecated binding for extracting data on MTD
devices which has been replaced by NVMEM.
The latter is already in wide use with mt76. As this is the only user,
transition to NVMEM.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
.../dts/ralink/gardena_smart_gateway_mt7688.dts | 17 +++++++++++++++--
1 file changed, 15 insertions(+), 2 deletions(-)
diff --git a/arch/mips/boot/dts/ralink/gardena_smart_gateway_mt7688.dts b/arch/mips/boot/dts/ralink/gardena_smart_gateway_mt7688.dts
index 0bfb1dde9764..a8a8efbaf527 100644
--- a/arch/mips/boot/dts/ralink/gardena_smart_gateway_mt7688.dts
+++ b/arch/mips/boot/dts/ralink/gardena_smart_gateway_mt7688.dts
@@ -155,10 +155,20 @@ partition@b0000 {
reg = <0xb0000 0x10000>;
};
- factory: partition@c0000 {
+ partition@c0000 {
label = "factory";
reg = <0xc0000 0x10000>;
read-only;
+
+ nvmem-layout {
+ compatible = "fixed-layout";
+ #address-cells = <1>;
+ #nvmem-cell-cells = <1>;
+
+ eeprom_factory_0: eeprom@0 {
+ reg = <0x0 0x400>;
+ };
+ };
};
};
};
@@ -201,5 +211,8 @@ &watchdog {
&wmac {
status = "okay";
- mediatek,mtd-eeprom = <&factory 0x0000>;
+
+ nvmem-cells = <&eeprom_factory_0>;
+ nvmem-cell-names = "eeprom"
+
};
--
2.54.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/3] dt-bindings: net: wireless: mt76: remove mediatek,mtd-eeprom
2026-04-27 3:44 [PATCH 0/3] wifi: mt76: remove mediatek,mtd-eeprom Rosen Penev
2026-04-27 3:44 ` [PATCH 1/3] MIPS: dts: ralink: gardena_smart_gateway_mt7688: use nvmem for EEPROM Rosen Penev
@ 2026-04-27 3:44 ` Rosen Penev
2026-04-27 3:44 ` [PATCH 3/3] wifi: mt76: remove mt76_get_of_data_from_mtd Rosen Penev
2 siblings, 0 replies; 4+ messages in thread
From: Rosen Penev @ 2026-04-27 3:44 UTC (permalink / raw)
To: devicetree
Cc: Felix Fietkau, Lorenzo Bianconi, Ryder Lee, Shayne Chen,
Sean Wang, Johannes Berg, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Matthias Brugger, AngeloGioacchino Del Regno,
Thomas Bogendoerfer, open list:MEDIATEK MT76 WIRELESS LAN DRIVER,
open list:ARM/Mediatek SoC support,
moderated list:ARM/Mediatek SoC support,
moderated list:ARM/Mediatek SoC support, open list:MIPS
mediatek,mtd-eeprom is a widely unused binding that predates and has
been replaced by NVMEM. As there are no users, remove it.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
.../bindings/net/wireless/mediatek,mt76.yaml | 19 ++-----------------
1 file changed, 2 insertions(+), 17 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml
index ae6b97cdc44b..482c22cd6627 100644
--- a/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml
+++ b/Documentation/devicetree/bindings/net/wireless/mediatek,mt76.yaml
@@ -87,21 +87,6 @@ properties:
description:
EEPROM data embedded as array.
- mediatek,mtd-eeprom:
- $ref: /schemas/types.yaml#/definitions/phandle-array
- items:
- - items:
- - description: phandle to MTD partition
- - description: offset containing EEPROM data
- description:
- Phandle to a MTD partition + offset containing EEPROM data
- deprecated: true
-
- big-endian:
- $ref: /schemas/types.yaml#/definitions/flag
- description:
- Specify if the radio eeprom partition is written in big-endian
-
mediatek,eeprom-merge-otp:
type: boolean
description:
@@ -314,8 +299,8 @@ examples:
compatible = "mediatek,mt76";
reg = <0x0000 0 0 0 0>;
ieee80211-freq-limit = <5000000 6000000>;
- mediatek,mtd-eeprom = <&factory 0x8000>;
- big-endian;
+ nvmem-cells = <&eeprom>;
+ nvmem-cell-names = "eeprom";
led {
led-sources = <2>;
--
2.54.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/3] wifi: mt76: remove mt76_get_of_data_from_mtd
2026-04-27 3:44 [PATCH 0/3] wifi: mt76: remove mediatek,mtd-eeprom Rosen Penev
2026-04-27 3:44 ` [PATCH 1/3] MIPS: dts: ralink: gardena_smart_gateway_mt7688: use nvmem for EEPROM Rosen Penev
2026-04-27 3:44 ` [PATCH 2/3] dt-bindings: net: wireless: mt76: remove mediatek,mtd-eeprom Rosen Penev
@ 2026-04-27 3:44 ` Rosen Penev
2 siblings, 0 replies; 4+ messages in thread
From: Rosen Penev @ 2026-04-27 3:44 UTC (permalink / raw)
To: devicetree
Cc: Felix Fietkau, Lorenzo Bianconi, Ryder Lee, Shayne Chen,
Sean Wang, Johannes Berg, Rob Herring, Krzysztof Kozlowski,
Conor Dooley, Matthias Brugger, AngeloGioacchino Del Regno,
Thomas Bogendoerfer, open list:MEDIATEK MT76 WIRELESS LAN DRIVER,
open list:ARM/Mediatek SoC support,
moderated list:ARM/Mediatek SoC support,
moderated list:ARM/Mediatek SoC support, open list:MIPS
mt76_get_of_data_from_mtd has been replaced by
mt76_get_of_data_from_nvmem in all usages.
Remove it to prevent people from using the deprecated
mediatek,mtd-eeprom binding.
Signed-off-by: Rosen Penev <rosenp@gmail.com>
---
drivers/net/wireless/mediatek/mt76/eeprom.c | 87 -------------------
drivers/net/wireless/mediatek/mt76/mt76.h | 1 -
.../wireless/mediatek/mt76/mt7915/eeprom.c | 4 -
3 files changed, 92 deletions(-)
diff --git a/drivers/net/wireless/mediatek/mt76/eeprom.c b/drivers/net/wireless/mediatek/mt76/eeprom.c
index afdb73661866..092804323d81 100644
--- a/drivers/net/wireless/mediatek/mt76/eeprom.c
+++ b/drivers/net/wireless/mediatek/mt76/eeprom.c
@@ -35,89 +35,6 @@ static int mt76_get_of_eeprom_data(struct mt76_dev *dev, void *eep, int len)
return 0;
}
-int mt76_get_of_data_from_mtd(struct mt76_dev *dev, void *eep, int offset, int len)
-{
-#ifdef CONFIG_MTD
- struct device_node *np = dev->dev->of_node;
- struct mtd_info *mtd;
- const __be32 *list;
- const char *part;
- phandle phandle;
- size_t retlen;
- int size;
- int ret;
-
- list = of_get_property(np, "mediatek,mtd-eeprom", &size);
- if (!list)
- return -ENOENT;
-
- phandle = be32_to_cpup(list++);
- if (!phandle)
- return -ENOENT;
-
- np = of_find_node_by_phandle(phandle);
- if (!np)
- return -EINVAL;
-
- part = of_get_property(np, "label", NULL);
- if (!part)
- part = np->name;
-
- mtd = get_mtd_device_nm(part);
- if (IS_ERR(mtd)) {
- ret = PTR_ERR(mtd);
- goto out_put_node;
- }
-
- if (size <= sizeof(*list)) {
- ret = -EINVAL;
- goto out_put_node;
- }
-
- offset += be32_to_cpup(list);
- ret = mtd_read(mtd, offset, len, &retlen, eep);
- put_mtd_device(mtd);
- if (mtd_is_bitflip(ret))
- ret = 0;
- if (ret) {
- dev_err(dev->dev, "reading EEPROM from mtd %s failed: %i\n",
- part, ret);
- goto out_put_node;
- }
-
- if (retlen < len) {
- ret = -EINVAL;
- goto out_put_node;
- }
-
- if (of_property_read_bool(dev->dev->of_node, "big-endian")) {
- u8 *data = (u8 *)eep;
- int i;
-
- /* convert eeprom data in Little Endian */
- for (i = 0; i < round_down(len, 2); i += 2)
- put_unaligned_le16(get_unaligned_be16(&data[i]),
- &data[i]);
- }
-
-#ifdef CONFIG_NL80211_TESTMODE
- dev->test_mtd.name = devm_kstrdup(dev->dev, part, GFP_KERNEL);
- if (!dev->test_mtd.name) {
- ret = -ENOMEM;
- goto out_put_node;
- }
- dev->test_mtd.offset = offset;
-#endif
-
-out_put_node:
- of_node_put(np);
- return ret;
-#else
- return -ENOENT;
-#endif
-}
-EXPORT_SYMBOL_GPL(mt76_get_of_data_from_mtd);
-
int mt76_get_of_data_from_nvmem(struct mt76_dev *dev, void *eep,
const char *cell_name, int len)
{
@@ -163,10 +80,6 @@ static int mt76_get_of_eeprom(struct mt76_dev *dev, void *eep, int len)
if (!ret)
return 0;
- ret = mt76_get_of_data_from_mtd(dev, eep, 0, len);
- if (!ret)
- return 0;
-
return mt76_get_of_data_from_nvmem(dev, eep, "eeprom", len);
}
diff --git a/drivers/net/wireless/mediatek/mt76/mt76.h b/drivers/net/wireless/mediatek/mt76/mt76.h
index 527bef97e122..f447ecac664d 100644
--- a/drivers/net/wireless/mediatek/mt76/mt76.h
+++ b/drivers/net/wireless/mediatek/mt76/mt76.h
@@ -1339,7 +1339,6 @@ void mt76_seq_puts_array(struct seq_file *file, const char *str,
int mt76_eeprom_init(struct mt76_dev *dev, int len);
int mt76_eeprom_override(struct mt76_phy *phy);
-int mt76_get_of_data_from_mtd(struct mt76_dev *dev, void *eep, int offset, int len);
int mt76_get_of_data_from_nvmem(struct mt76_dev *dev, void *eep,
const char *cell_name, int len);
diff --git a/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c b/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
index eb92cbf1a284..c24e1276700b 100644
--- a/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
+++ b/drivers/net/wireless/mediatek/mt76/mt7915/eeprom.c
@@ -29,10 +29,6 @@ static int mt7915_eeprom_load_precal(struct mt7915_dev *dev)
offs = is_mt7915(&dev->mt76) ? MT_EE_PRECAL : MT_EE_PRECAL_V2;
- ret = mt76_get_of_data_from_mtd(mdev, dev->cal, offs, size);
- if (!ret)
- return ret;
-
ret = mt76_get_of_data_from_nvmem(mdev, dev->cal, "precal", size);
if (!ret)
return ret;
--
2.54.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-04-27 3:44 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-27 3:44 [PATCH 0/3] wifi: mt76: remove mediatek,mtd-eeprom Rosen Penev
2026-04-27 3:44 ` [PATCH 1/3] MIPS: dts: ralink: gardena_smart_gateway_mt7688: use nvmem for EEPROM Rosen Penev
2026-04-27 3:44 ` [PATCH 2/3] dt-bindings: net: wireless: mt76: remove mediatek,mtd-eeprom Rosen Penev
2026-04-27 3:44 ` [PATCH 3/3] wifi: mt76: remove mt76_get_of_data_from_mtd Rosen Penev
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox