#include <uapi/linux/net_tstamp.h>
 #include <linux/ptp_clock_kernel.h>
 
-#ifdef CONFIG_SPARC
-#include <asm/idprom.h>
-#include <asm/prom.h>
-#endif
-
 #define BAR_0  0
 #define BAR_2  2
 
        return err;
 }
 
-#ifdef CONFIG_SPARC
-static int tg3_get_macaddr_sparc(struct tg3 *tp)
-{
-       struct net_device *dev = tp->dev;
-       struct pci_dev *pdev = tp->pdev;
-       struct device_node *dp = pci_device_to_OF_node(pdev);
-       const unsigned char *addr;
-       int len;
-
-       addr = of_get_property(dp, "local-mac-address", &len);
-       if (addr && len == ETH_ALEN) {
-               memcpy(dev->dev_addr, addr, ETH_ALEN);
-               return 0;
-       }
-       return -ENODEV;
-}
-
-static int tg3_get_default_macaddr_sparc(struct tg3 *tp)
-{
-       struct net_device *dev = tp->dev;
-
-       memcpy(dev->dev_addr, idprom->id_ethaddr, ETH_ALEN);
-       return 0;
-}
-#endif
-
 static int tg3_get_device_address(struct tg3 *tp)
 {
        struct net_device *dev = tp->dev;
        int addr_ok = 0;
        int err;
 
-#ifdef CONFIG_SPARC
-       if (!tg3_get_macaddr_sparc(tp))
+       if (!eth_platform_get_mac_address(&tp->pdev->dev, dev->dev_addr))
                return 0;
-#endif
 
        if (tg3_flag(tp, IS_SSB_CORE)) {
                err = ssb_gige_get_macaddr(tp->pdev, &dev->dev_addr[0]);
                }
        }
 
-       if (!is_valid_ether_addr(&dev->dev_addr[0])) {
-#ifdef CONFIG_SPARC
-               if (!tg3_get_default_macaddr_sparc(tp))
-                       return 0;
-#endif
+       if (!is_valid_ether_addr(&dev->dev_addr[0]))
                return -EINVAL;
-       }
        return 0;
 }