As per the xlnx,axi-ethernet-1.00.a DT documentation in linux, the AXI
DMA registers can be obtained via the reg property or via a separate
node for the axistream DMA controller. Currently only the latter is
supported, so add support to fetch the DMA controller registers from the
"reg" property.

Signed-off-by: Mayuresh Chitale <mchit...@ventanamicro.com>
---
 drivers/net/xilinx_axi_emac.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/drivers/net/xilinx_axi_emac.c b/drivers/net/xilinx_axi_emac.c
index 54f2232768..ef151ee51b 100644
--- a/drivers/net/xilinx_axi_emac.c
+++ b/drivers/net/xilinx_axi_emac.c
@@ -903,12 +903,11 @@ static int axi_emac_of_to_plat(struct udevice *dev)
 
        ret = dev_read_phandle_with_args(dev, "axistream-connected", NULL, 0, 0,
                                         &axistream_node);
-       if (ret) {
-               printf("%s: axistream is not found\n", __func__);
-               return -EINVAL;
-       }
+       if (!ret)
+               plat->dmatx = (struct axidma_reg 
*)ofnode_get_addr(axistream_node.node);
+       else
+               plat->dmatx = (struct axidma_reg *)dev_read_addr_index(dev, 1);
 
-       plat->dmatx = (struct axidma_reg *)ofnode_get_addr(axistream_node.node);
        if (!plat->dmatx) {
                printf("%s: axi_dma register space not found\n", __func__);
                return -EINVAL;
-- 
2.34.1

Reply via email to