tsec: Fix reading phy registers from DT
authorMario Six <mario.six@gdsys.cc>
Fri, 27 Apr 2018 12:52:57 +0000 (14:52 +0200)
committerJoe Hershberger <joe.hershberger@ni.com>
Wed, 13 Jun 2018 18:54:15 +0000 (13:54 -0500)
Bus translations should be applied when reading the address of the sgmii
phy registers from the DT. Use ofnode_get_addr_index instead of the
plain ofnode_read_u32_default to fix this.

Signed-off-by: Mario Six <mario.six@gdsys.cc>
Acked-by: Joe Hershberger <joe.hershberger@ni.com>
drivers/net/tsec.c

index 37840420fa35ec9b2de0676930ab455d0937a37d..03a46da2f8a1519072e4f730d88e8194db6ba733 100644 (file)
@@ -796,8 +796,9 @@ int tsec_probe(struct udevice *dev)
 
        parent = ofnode_get_parent(phandle_args.node);
        if (ofnode_valid(parent)) {
-               int reg = ofnode_read_u32_default(parent, "reg", 0);
-               priv->phyregs_sgmii = (struct tsec_mii_mng *)(reg + 0x520);
+               int reg = ofnode_get_addr_index(parent, 0);
+
+               priv->phyregs_sgmii = (struct tsec_mii_mng *)reg;
        } else {
                debug("No parent node for PHY?\n");
                return -ENOENT;