Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
mv643xx_eth.h
Go to the documentation of this file.
1 /*
2  * MV-643XX ethernet platform device data definition file.
3  */
4 
5 #ifndef __LINUX_MV643XX_ETH_H
6 #define __LINUX_MV643XX_ETH_H
7 
8 #include <linux/mbus.h>
9 
10 #define MV643XX_ETH_SHARED_NAME "mv643xx_eth"
11 #define MV643XX_ETH_NAME "mv643xx_eth_port"
12 #define MV643XX_ETH_SHARED_REGS 0x2000
13 #define MV643XX_ETH_SHARED_REGS_SIZE 0x2000
14 #define MV643XX_ETH_BAR_4 0x2220
15 #define MV643XX_ETH_SIZE_REG_4 0x2224
16 #define MV643XX_ETH_BASE_ADDR_ENABLE_REG 0x2290
17 
18 #define MV643XX_TX_CSUM_DEFAULT_LIMIT 0
19 
23  /*
24  * Max packet size for Tx IP/Layer 4 checksum, when set to 0, default
25  * limit of 9KiB will be used.
26  */
28 };
29 
30 #define MV643XX_ETH_PHY_ADDR_DEFAULT 0
31 #define MV643XX_ETH_PHY_ADDR(x) (0x80 | (x))
32 #define MV643XX_ETH_PHY_NONE 0xff
33 
35  /*
36  * Pointer back to our parent instance, and our port number.
37  */
40 
41  /*
42  * Whether a PHY is present, and if yes, at which address.
43  */
44  int phy_addr;
45 
46  /*
47  * Use this MAC address if it is valid, overriding the
48  * address that is already in the hardware.
49  */
51 
52  /*
53  * If speed is 0, autonegotiation is enabled.
54  * Valid values for speed: 0, SPEED_10, SPEED_100, SPEED_1000.
55  * Valid values for duplex: DUPLEX_HALF, DUPLEX_FULL.
56  */
57  int speed;
58  int duplex;
59 
60  /*
61  * How many RX/TX queues to use.
62  */
65 
66  /*
67  * Override default RX/TX queue sizes if nonzero.
68  */
71 
72  /*
73  * Use on-chip SRAM for RX/TX descriptors if size is nonzero
74  * and sufficient to contain all descriptors for the requested
75  * ring sizes.
76  */
77  unsigned long rx_sram_addr;
79  unsigned long tx_sram_addr;
81 };
82 
83 
84 #endif