X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=drivers%2Fnet%2Fdesignware.h;h=7992d0ebeebf8ffb0fb86c3bdced2f856e76d67e;hb=008ed16c820a4121d34a856c41d143a86eb9e13e;hp=49d900cb3f98a684d794d98e45b86a4ed8b26874;hpb=65f3151f85cb3fe91b91153dce6e03798ef3bc85;p=u-boot diff --git a/drivers/net/designware.h b/drivers/net/designware.h index 49d900cb3f..7992d0ebee 100644 --- a/drivers/net/designware.h +++ b/drivers/net/designware.h @@ -8,6 +8,10 @@ #ifndef _DW_ETH_H #define _DW_ETH_H +#ifdef CONFIG_DM_GPIO +#include +#endif + #define CONFIG_TX_DESCR_NUM 16 #define CONFIG_RX_DESCR_NUM 16 #define CONFIG_ETH_BUFSIZE 2048 @@ -110,8 +114,8 @@ struct eth_dma_regs { struct dmamacdescr { u32 txrx_status; u32 dmamac_cntl; - void *dmamac_addr; - struct dmamacdescr *dmamac_next; + u32 dmamac_addr; + u32 dmamac_next; } __aligned(ARCH_DMA_MINALIGN); /* @@ -223,15 +227,41 @@ struct dw_eth_dev { char rxbuffs[RX_TOTAL_BUFSIZE] __aligned(ARCH_DMA_MINALIGN); u32 interface; + u32 max_speed; u32 tx_currdescnum; u32 rx_currdescnum; struct eth_mac_regs *mac_regs_p; struct eth_dma_regs *dma_regs_p; - +#ifndef CONFIG_DM_ETH struct eth_device *dev; +#endif +#ifdef CONFIG_DM_GPIO + struct gpio_desc reset_gpio; +#endif + struct phy_device *phydev; struct mii_dev *bus; }; +#ifdef CONFIG_DM_ETH +int designware_eth_ofdata_to_platdata(struct udevice *dev); +int designware_eth_probe(struct udevice *dev); +extern const struct eth_ops designware_eth_ops; + +struct dw_eth_pdata { + struct eth_pdata eth_pdata; + u32 reset_delays[3]; +}; + +int designware_eth_init(struct dw_eth_dev *priv, u8 *enetaddr); +int designware_eth_enable(struct dw_eth_dev *priv); +int designware_eth_send(struct udevice *dev, void *packet, int length); +int designware_eth_recv(struct udevice *dev, int flags, uchar **packetp); +int designware_eth_free_pkt(struct udevice *dev, uchar *packet, + int length); +void designware_eth_stop(struct udevice *dev); +int designware_eth_write_hwaddr(struct udevice *dev); +#endif + #endif