net/at91_ether: use pclk member instead of ether_clk
[firefly-linux-kernel-4.4.55.git] / drivers / net / ethernet / cadence / macb.h
index 335e288f53140159e2f1956a716713b69c03933a..138311f9be9a1660d134edb304f6a7128540e381 100644 (file)
@@ -14,6 +14,8 @@
 #define MACB_NCR                               0x0000
 #define MACB_NCFGR                             0x0004
 #define MACB_NSR                               0x0008
+#define MACB_TAR                               0x000c /* AT91RM9200 only */
+#define MACB_TCR                               0x0010 /* AT91RM9200 only */
 #define MACB_TSR                               0x0014
 #define MACB_RBQP                              0x0018
 #define MACB_TBQP                              0x001c
 #define MACB_RTY_SIZE                          1
 #define MACB_PAE_OFFSET                                13
 #define MACB_PAE_SIZE                          1
+#define MACB_RM9200_RMII_OFFSET                        13 /* AT91RM9200 only */
+#define MACB_RM9200_RMII_SIZE                  1  /* AT91RM9200 only */
 #define MACB_RBOF_OFFSET                       14
 #define MACB_RBOF_SIZE                         2
 #define MACB_RLCE_OFFSET                       16
 #define MACB_TGO_SIZE                          1
 #define MACB_BEX_OFFSET                                4
 #define MACB_BEX_SIZE                          1
+#define MACB_RM9200_BNQ_OFFSET                 4 /* AT91RM9200 only */
+#define MACB_RM9200_BNQ_SIZE                   1 /* AT91RM9200 only */
 #define MACB_COMP_OFFSET                       5
 #define MACB_COMP_SIZE                         1
 #define MACB_UND_OFFSET                                6
@@ -498,6 +504,19 @@ struct gem_stats {
        u32     rx_udp_checksum_errors;
 };
 
+struct rbf_t {
+       unsigned int addr;
+       unsigned long size;
+};
+
+#define MAX_RBUFF_SZ   0x600           /* 1518 rounded up */
+#define MAX_RX_DESCR   9               /* max number of receive buffers */
+
+struct recv_desc_bufs {
+       struct rbf_t descriptors[MAX_RX_DESCR];         /* must be on sizeof (rbf_t) boundary */
+       char recv_buf[MAX_RX_DESCR][MAX_RBUFF_SZ];      /* must be on long boundary */
+};
+
 struct macb {
        void __iomem            *regs;
 
@@ -534,6 +553,28 @@ struct macb {
        unsigned int            duplex;
 
        phy_interface_t         phy_interface;
+
+       /* at91_private */
+       struct mii_if_info mii;                 /* ethtool support */
+       struct macb_platform_data board_data;   /* board-specific
+                                                * configuration (shared with
+                                                * macb for common data */
+
+       /* PHY */
+       unsigned long phy_type;                 /* type of PHY (PHY_ID) */
+       short phy_media;                        /* media interface type */
+       unsigned short phy_address;             /* 5-bit MDI address of PHY (0..31) */
+       struct timer_list check_timer;          /* Poll link status */
+
+       /* Transmit */
+       struct sk_buff *skb;                    /* holds skb until xmit interrupt completes */
+       dma_addr_t skb_physaddr;                /* phys addr from pci_map_single */
+       int skb_length;                         /* saved skb length for pci_unmap_single */
+
+       /* Receive */
+       int rxBuffIndex;                        /* index into receive descriptor list */
+       struct recv_desc_bufs *dlist;           /* descriptor list address */
+       struct recv_desc_bufs *dlist_phys;      /* descriptor list physical address */
 };
 
 static inline bool macb_is_gem(struct macb *bp)