aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mv643xx_eth.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/mv643xx_eth.h')
-rw-r--r--include/linux/mv643xx_eth.h79
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
18struct mv643xx_eth_shared_platform_data {
19 struct mbus_dram_target_info *dram;
20 unsigned int t_clk;
21};
22
15struct mv643xx_eth_platform_data { 23struct 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