0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef __XGENE_ENET_V2_MAIN_H__
0011 #define __XGENE_ENET_V2_MAIN_H__
0012
0013 #include <linux/acpi.h>
0014 #include <linux/clk.h>
0015 #include <linux/efi.h>
0016 #include <linux/if_vlan.h>
0017 #include <linux/irq.h>
0018 #include <linux/io.h>
0019 #include <linux/module.h>
0020 #include <linux/of_platform.h>
0021 #include <linux/of_net.h>
0022 #include <linux/of_mdio.h>
0023 #include <linux/prefetch.h>
0024 #include <linux/phy.h>
0025 #include <net/ip.h>
0026 #include "mac.h"
0027 #include "enet.h"
0028 #include "ring.h"
0029 #include "ethtool.h"
0030
0031 #define XGENE_ENET_STD_MTU 1536
0032 #define XGENE_ENET_MIN_FRAME 60
0033 #define IRQ_ID_SIZE 16
0034
0035 struct xge_resource {
0036 void __iomem *base_addr;
0037 int phy_mode;
0038 u32 irq;
0039 };
0040
0041 struct xge_stats {
0042 u64 tx_packets;
0043 u64 tx_bytes;
0044 u64 rx_packets;
0045 u64 rx_bytes;
0046 u64 rx_errors;
0047 };
0048
0049
0050 struct xge_pdata {
0051 struct xge_resource resources;
0052 struct xge_desc_ring *tx_ring;
0053 struct xge_desc_ring *rx_ring;
0054 struct platform_device *pdev;
0055 char irq_name[IRQ_ID_SIZE];
0056 struct mii_bus *mdio_bus;
0057 struct net_device *ndev;
0058 struct napi_struct napi;
0059 struct xge_stats stats;
0060 int phy_speed;
0061 u8 nbufs;
0062 };
0063
0064 int xge_mdio_config(struct net_device *ndev);
0065 void xge_mdio_remove(struct net_device *ndev);
0066
0067 #endif