1 From adf957124a115bdf3e4728e1ea8c70a632648cf0 Mon Sep 17 00:00:00 2001
2 From: Coia Prant <coiaprant@gmail.com>
3 Date: Fri, 14 Feb 2025 15:49:55 +0800
4 Subject: [PATCH] wifi: rt2x00: Add support for loading EEPROM from devicetree
7 This patch allows rt2x00 to load eeprom from devicetree embedded data.
11 /* load eeprom from embedded data 'eeprom-data' */
13 ralink,eeprom-data = <0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
14 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
15 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
16 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
17 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
18 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
19 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
20 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
21 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
22 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
23 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
24 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
25 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
26 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
27 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff
28 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff 0xffffffff>;
31 Signed-off-by: Coia Prant <coiaprant@gmail.com>
33 .../net/wireless/ralink/rt2x00/rt2x00eeprom.c | 25 +++++++++++++++++++
34 1 file changed, 25 insertions(+)
36 --- a/drivers/net/wireless/ralink/rt2x00/rt2x00eeprom.c
37 +++ b/drivers/net/wireless/ralink/rt2x00/rt2x00eeprom.c
38 @@ -33,6 +33,27 @@ static void rt2800lib_eeprom_swap(struct
39 rt2x00dev->eeprom[i] = swab16(rt2x00dev->eeprom[i]);
42 +static int rt2800lib_read_eeprom_data(struct rt2x00_dev *rt2x00dev)
44 + struct device_node *np = rt2x00dev->dev->of_node;
45 + unsigned int len = rt2x00dev->ops->eeprom_size;
49 + data = of_get_property(np, "ralink,eeprom-data", &size);
54 + dev_err(rt2x00dev->dev, "invalid eeprom size, required: 0x%04x\n", len);
58 + memcpy(rt2x00dev->eeprom, data, size);
63 #if IS_ENABLED(CONFIG_MTD)
64 static int rt2800lib_read_eeprom_mtd(struct rt2x00_dev *rt2x00dev)
66 @@ -193,6 +214,10 @@ int rt2x00lib_read_eeprom(struct rt2x00_
70 + ret = rt2800lib_read_eeprom_data(rt2x00dev);
74 #if IS_ENABLED(CONFIG_MTD)
75 ret = rt2800lib_read_eeprom_mtd(rt2x00dev);