diff options
Diffstat (limited to 'include/linux/mv643xx_eth.h')
-rw-r--r-- | include/linux/mv643xx_eth.h | 79 |
1 files changed, 60 insertions, 19 deletions
diff --git a/include/linux/mv643xx_eth.h b/include/linux/mv643xx_eth.h index 30e11aa3c1c9..12078577aef6 100644 --- a/include/linux/mv643xx_eth.h +++ b/include/linux/mv643xx_eth.h | |||
@@ -1,34 +1,75 @@ | |||
1 | /* | 1 | /* |
2 | * MV-643XX ethernet platform device data definition file. | 2 | * MV-643XX ethernet platform device data definition file. |
3 | */ | 3 | */ |
4 | |||
4 | #ifndef __LINUX_MV643XX_ETH_H | 5 | #ifndef __LINUX_MV643XX_ETH_H |
5 | #define __LINUX_MV643XX_ETH_H | 6 | #define __LINUX_MV643XX_ETH_H |
6 | 7 | ||
7 | #define MV643XX_ETH_SHARED_NAME "mv643xx_eth_shared" | 8 | #include <linux/mbus.h> |
8 | #define MV643XX_ETH_NAME "mv643xx_eth" | 9 | |
10 | #define MV643XX_ETH_SHARED_NAME "mv643xx_eth" | ||
11 | #define MV643XX_ETH_NAME "mv643xx_eth_port" | ||
9 | #define MV643XX_ETH_SHARED_REGS 0x2000 | 12 | #define MV643XX_ETH_SHARED_REGS 0x2000 |
10 | #define MV643XX_ETH_SHARED_REGS_SIZE 0x2000 | 13 | #define MV643XX_ETH_SHARED_REGS_SIZE 0x2000 |
11 | #define MV643XX_ETH_BAR_4 0x2220 | 14 | #define MV643XX_ETH_BAR_4 0x2220 |
12 | #define MV643XX_ETH_SIZE_REG_4 0x2224 | 15 | #define MV643XX_ETH_SIZE_REG_4 0x2224 |
13 | #define MV643XX_ETH_BASE_ADDR_ENABLE_REG 0x2290 | 16 | #define MV643XX_ETH_BASE_ADDR_ENABLE_REG 0x2290 |
14 | 17 | ||
18 | struct mv643xx_eth_shared_platform_data { | ||
19 | struct mbus_dram_target_info *dram; | ||
20 | unsigned int t_clk; | ||
21 | }; | ||
22 | |||
15 | struct mv643xx_eth_platform_data { | 23 | struct mv643xx_eth_platform_data { |
16 | int port_number; | 24 | /* |
17 | u16 force_phy_addr; /* force override if phy_addr == 0 */ | 25 | * Pointer back to our parent instance, and our port number. |
18 | u16 phy_addr; | 26 | */ |
19 | 27 | struct platform_device *shared; | |
20 | /* If speed is 0, then speed and duplex are autonegotiated. */ | 28 | int port_number; |
21 | int speed; /* 0, SPEED_10, SPEED_100, SPEED_1000 */ | 29 | |
22 | int duplex; /* DUPLEX_HALF or DUPLEX_FULL */ | 30 | /* |
23 | 31 | * Whether a PHY is present, and if yes, at which address. | |
24 | /* non-zero values of the following fields override defaults */ | 32 | */ |
25 | u32 tx_queue_size; | 33 | struct platform_device *shared_smi; |
26 | u32 rx_queue_size; | 34 | int force_phy_addr; |
27 | u32 tx_sram_addr; | 35 | int phy_addr; |
28 | u32 tx_sram_size; | 36 | |
29 | u32 rx_sram_addr; | 37 | /* |
30 | u32 rx_sram_size; | 38 | * Use this MAC address if it is valid, overriding the |
31 | u8 mac_addr[6]; /* mac address if non-zero*/ | 39 | * address that is already in the hardware. |
40 | */ | ||
41 | u8 mac_addr[6]; | ||
42 | |||
43 | /* | ||
44 | * If speed is 0, autonegotiation is enabled. | ||
45 | * Valid values for speed: 0, SPEED_10, SPEED_100, SPEED_1000. | ||
46 | * Valid values for duplex: DUPLEX_HALF, DUPLEX_FULL. | ||
47 | */ | ||
48 | int speed; | ||
49 | int duplex; | ||
50 | |||
51 | /* | ||
52 | * Which RX/TX queues to use. | ||
53 | */ | ||
54 | int rx_queue_mask; | ||
55 | int tx_queue_mask; | ||
56 | |||
57 | /* | ||
58 | * Override default RX/TX queue sizes if nonzero. | ||
59 | */ | ||
60 | int rx_queue_size; | ||
61 | int tx_queue_size; | ||
62 | |||
63 | /* | ||
64 | * Use on-chip SRAM for RX/TX descriptors if size is nonzero | ||
65 | * and sufficient to contain all descriptors for the requested | ||
66 | * ring sizes. | ||
67 | */ | ||
68 | unsigned long rx_sram_addr; | ||
69 | int rx_sram_size; | ||
70 | unsigned long tx_sram_addr; | ||
71 | int tx_sram_size; | ||
32 | }; | 72 | }; |
33 | 73 | ||
34 | #endif /* __LINUX_MV643XX_ETH_H */ | 74 | |
75 | #endif | ||