summaryrefslogtreecommitdiff
path: root/drivers/net/tsec.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/tsec.c')
-rw-r--r--drivers/net/tsec.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/tsec.c b/drivers/net/tsec.c
index c2e755f2b1..611cb040dc 100644
--- a/drivers/net/tsec.c
+++ b/drivers/net/tsec.c
@@ -800,7 +800,7 @@ int tsec_probe(struct udevice *dev)
int ret;
pdata->iobase = (phys_addr_t)dev_read_addr(dev);
- priv->regs = (struct tsec *)pdata->iobase;
+ priv->regs = dev_remap_addr(dev);
if (dev_read_phandle_with_args(dev, "phy-handle", NULL, 0, 0,
&phandle_args)) {
@@ -819,8 +819,13 @@ int tsec_probe(struct udevice *dev)
}
reg = ofnode_get_addr_index(parent, 0);
- priv->phyregs_sgmii = (struct tsec_mii_mng *)
- (reg + TSEC_MDIO_REGS_OFFSET);
+ if (reg == FDT_ADDR_T_NONE) {
+ printf("No 'reg' property of MII for external PHY\n");
+ return -ENOENT;
+ }
+
+ priv->phyregs_sgmii = map_physmem(reg + TSEC_MDIO_REGS_OFFSET, 0,
+ MAP_NOCACHE);
ret = dev_read_phandle_with_args(dev, "tbi-handle", NULL, 0, 0,
&phandle_args);