eQos: Implement the read_rom_hwaddr callback
authorYe Li <ye.li@nxp.com>
Sun, 3 May 2020 14:41:20 +0000 (22:41 +0800)
committerStefano Babic <sbabic@denx.de>
Sun, 10 May 2020 18:55:20 +0000 (20:55 +0200)
Implement the read_rom_hwaddr callback to load MAC address from fuse
for imx8m platforms.

Reviewed-by: Fugang Duan <fugang.duan@nxp.com>
Signed-off-by: Ye Li <ye.li@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
drivers/net/dwc_eth_qos.c

index e4fc76cc06848d2ad82732499c8f73b3202fb838..f67c5f45707add0e5a3348f833286584b806229a 100644 (file)
@@ -1145,6 +1145,16 @@ static int eqos_write_hwaddr(struct udevice *dev)
        return 0;
 }
 
+static int eqos_read_rom_hwaddr(struct udevice *dev)
+{
+       struct eth_pdata *pdata = dev_get_platdata(dev);
+
+#ifdef CONFIG_ARCH_IMX8M
+       imx_get_mac_from_fuse(dev->req_seq, pdata->enetaddr);
+#endif
+       return !is_valid_ethaddr(pdata->enetaddr);
+}
+
 static int eqos_start(struct udevice *dev)
 {
        struct eqos_priv *eqos = dev_get_priv(dev);
@@ -2066,6 +2076,7 @@ static const struct eth_ops eqos_ops = {
        .recv = eqos_recv,
        .free_pkt = eqos_free_pkt,
        .write_hwaddr = eqos_write_hwaddr,
+       .read_rom_hwaddr        = eqos_read_rom_hwaddr,
 };
 
 static struct eqos_ops eqos_tegra186_ops = {