--- a/drivers/net/wireless/rt2x00/rt2x00eeprom.c
+++ b/drivers/net/wireless/rt2x00/rt2x00eeprom.c
@@ -26,6 +26,7 @@
 
 #include <linux/kernel.h>
 #include <linux/module.h>
+#include <linux/of.h>
 
 #include "rt2x00.h"
 #include "rt2x00lib.h"
@@ -34,11 +35,21 @@ static const char *
 rt2x00lib_get_eeprom_file_name(struct rt2x00_dev *rt2x00dev)
 {
 	struct rt2x00_platform_data *pdata = rt2x00dev->dev->platform_data;
+#ifdef CONFIG_OF
+	struct device_node *np;
+	const char *eep;
+#endif
 
 	if (pdata && pdata->eeprom_file_name)
 		return pdata->eeprom_file_name;
 
-	return NULL
+#ifdef CONFIG_OF
+	np = rt2x00dev->dev->of_node;
+	if (np && of_property_read_string(np, "ralink,eeprom", &eep) == 0)
+	    return eep;
+#endif
+
+	return NULL;
 }
 
 static int rt2x00lib_request_eeprom_file(struct rt2x00_dev *rt2x00dev)