|
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 struct mv643xx_eth_shared_platform_data { |
|
19 struct mbus_dram_target_info *dram; |
|
20 struct platform_device *shared_smi; |
|
21 unsigned int t_clk; |
|
22 }; |
|
23 |
|
24 #define MV643XX_ETH_PHY_ADDR_DEFAULT 0 |
|
25 #define MV643XX_ETH_PHY_ADDR(x) (0x80 | (x)) |
|
26 #define MV643XX_ETH_PHY_NONE 0xff |
|
27 |
|
28 struct mv643xx_eth_platform_data { |
|
29 /* |
|
30 * Pointer back to our parent instance, and our port number. |
|
31 */ |
|
32 struct platform_device *shared; |
|
33 int port_number; |
|
34 |
|
35 /* |
|
36 * Whether a PHY is present, and if yes, at which address. |
|
37 */ |
|
38 int phy_addr; |
|
39 |
|
40 /* |
|
41 * Use this MAC address if it is valid, overriding the |
|
42 * address that is already in the hardware. |
|
43 */ |
|
44 u8 mac_addr[6]; |
|
45 |
|
46 /* |
|
47 * If speed is 0, autonegotiation is enabled. |
|
48 * Valid values for speed: 0, SPEED_10, SPEED_100, SPEED_1000. |
|
49 * Valid values for duplex: DUPLEX_HALF, DUPLEX_FULL. |
|
50 */ |
|
51 int speed; |
|
52 int duplex; |
|
53 |
|
54 /* |
|
55 * How many RX/TX queues to use. |
|
56 */ |
|
57 int rx_queue_count; |
|
58 int tx_queue_count; |
|
59 |
|
60 /* |
|
61 * Override default RX/TX queue sizes if nonzero. |
|
62 */ |
|
63 int rx_queue_size; |
|
64 int tx_queue_size; |
|
65 |
|
66 /* |
|
67 * Use on-chip SRAM for RX/TX descriptors if size is nonzero |
|
68 * and sufficient to contain all descriptors for the requested |
|
69 * ring sizes. |
|
70 */ |
|
71 unsigned long rx_sram_addr; |
|
72 int rx_sram_size; |
|
73 unsigned long tx_sram_addr; |
|
74 int tx_sram_size; |
|
75 }; |
|
76 |
|
77 |
|
78 #endif |