#include <linux/types.h>
 #include <linux/fcntl.h>
 #include <linux/interrupt.h>
+#include <linux/property.h>
 #include <linux/string.h>
 #include <linux/errno.h>
 #include <linux/init.h>
 #include <linux/skbuff.h>
 #include <linux/delay.h>
 #include <linux/spi/spi.h>
-#include <linux/of_net.h>
 
 #include "enc28j60_hw.h"
 
 
 static int enc28j60_probe(struct spi_device *spi)
 {
+       unsigned char macaddr[ETH_ALEN];
        struct net_device *dev;
        struct enc28j60_net *priv;
-       const void *macaddr;
        int ret = 0;
 
        if (netif_msg_drv(&debug))
                goto error_irq;
        }
 
-       macaddr = of_get_mac_address(spi->dev.of_node);
-       if (macaddr)
+       if (device_get_mac_address(&spi->dev, macaddr, sizeof(macaddr)))
                ether_addr_copy(dev->dev_addr, macaddr);
        else
                eth_hw_addr_random(dev);