]> git.ipfire.org Git - people/ms/u-boot.git/blobdiff - drivers/net/designware.h
net: designware: add clock support
[people/ms/u-boot.git] / drivers / net / designware.h
index 51ba769cfb661cacea06c465d348811d16d882d0..252cd24f1aafbc46b0d030fc3e6a4a37e9736869 100644 (file)
@@ -8,7 +8,9 @@
 #ifndef _DW_ETH_H
 #define _DW_ETH_H
 
-#include <asm/gpio.h>
+#ifdef CONFIG_DM_GPIO
+#include <asm-generic/gpio.h>
+#endif
 
 #define CONFIG_TX_DESCR_NUM    16
 #define CONFIG_RX_DESCR_NUM    16
@@ -234,16 +236,36 @@ struct dw_eth_dev {
 #ifndef CONFIG_DM_ETH
        struct eth_device *dev;
 #endif
+#ifdef CONFIG_DM_GPIO
        struct gpio_desc reset_gpio;
+#endif
+#ifdef CONFIG_CLK
+       struct clk *clocks;     /* clock list */
+       int clock_count;        /* number of clock in clock list */
+#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