#include <clk.h>
#include <cpu_func.h>
#include <dm.h>
+#include <log.h>
+#include <linux/delay.h>
/*
* The u-boot networking stack is a little weird. It seems like the
#include <linux/mii.h>
#include <asm/io.h>
-#include <asm/dma-mapping.h>
+#include <linux/dma-mapping.h>
#include <asm/arch/clk.h>
#include <linux/errno.h>
macb->tx_ring[tx_head].addr = paddr;
barrier();
macb_flush_ring_desc(macb, TX);
- /* Do we need check paddr and length is dcache line aligned? */
- flush_dcache_range(paddr, paddr + ALIGN(length, ARCH_DMA_MINALIGN));
macb_writel(macb, NCR, MACB_BIT(TE) | MACB_BIT(RE) | MACB_BIT(TSTART));
/*
udelay(1);
}
- dma_unmap_single(packet, length, paddr);
+ dma_unmap_single(paddr, length, DMA_TO_DEVICE);
if (i <= MACB_TX_TIMEOUT) {
if (ctrl & MACB_BIT(TX_UNDERRUN))
macb->next_rx_tail = 0;
#ifdef CONFIG_MACB_ZYNQ
- macb_writel(macb, DMACFG, MACB_ZYNQ_GEM_DMACR_INIT);
+ gem_writel(macb, DMACFG, MACB_ZYNQ_GEM_DMACR_INIT);
#endif
macb_writel(macb, RBQP, macb->rx_ring_dma);
}
}
-static int macb_init(struct eth_device *netdev, bd_t *bd)
+static int macb_init(struct eth_device *netdev, struct bd_info *bd)
{
struct macb_device *macb = to_macb(netdev);
static int macb_write_hwaddr(struct udevice *dev)
{
- struct eth_pdata *plat = dev_get_platdata(dev);
+ struct eth_pdata *plat = dev_get_plat(dev);
struct macb_device *macb = dev_get_priv(dev);
return _macb_write_hwaddr(macb, plat->enetaddr);
static int macb_eth_probe(struct udevice *dev)
{
- struct eth_pdata *pdata = dev_get_platdata(dev);
+ struct eth_pdata *pdata = dev_get_plat(dev);
struct macb_device *macb = dev_get_priv(dev);
const char *phy_mode;
int ret;
}
/**
- * macb_late_eth_ofdata_to_platdata
+ * macb_late_eth_of_to_plat
* @dev: udevice struct
* Returns 0 when operation success and negative errno number
* when operation failed.
*/
-int __weak macb_late_eth_ofdata_to_platdata(struct udevice *dev)
+int __weak macb_late_eth_of_to_plat(struct udevice *dev)
{
return 0;
}
-static int macb_eth_ofdata_to_platdata(struct udevice *dev)
+static int macb_eth_of_to_plat(struct udevice *dev)
{
- struct eth_pdata *pdata = dev_get_platdata(dev);
+ struct eth_pdata *pdata = dev_get_plat(dev);
pdata->iobase = (phys_addr_t)dev_remap_addr(dev);
if (!pdata->iobase)
return -EINVAL;
- return macb_late_eth_ofdata_to_platdata(dev);
+ return macb_late_eth_of_to_plat(dev);
}
static const struct macb_config sama5d4_config = {
.name = "eth_macb",
.id = UCLASS_ETH,
.of_match = macb_eth_ids,
- .ofdata_to_platdata = macb_eth_ofdata_to_platdata,
+ .of_to_plat = macb_eth_of_to_plat,
.probe = macb_eth_probe,
.remove = macb_eth_remove,
.ops = &macb_eth_ops,
- .priv_auto_alloc_size = sizeof(struct macb_device),
- .platdata_auto_alloc_size = sizeof(struct eth_pdata),
+ .priv_auto = sizeof(struct macb_device),
+ .plat_auto = sizeof(struct eth_pdata),
};
#endif