Merge branch 'linux-2.6'
[linux-2.6] / include / linux / mv643xx_eth.h
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         unsigned int    t_clk;
21 };
22
23 struct mv643xx_eth_platform_data {
24         struct platform_device  *shared;
25         int             port_number;
26
27         struct platform_device  *shared_smi;
28
29         u16             force_phy_addr; /* force override if phy_addr == 0 */
30         u16             phy_addr;
31
32         /* If speed is 0, then speed and duplex are autonegotiated. */
33         int             speed;          /* 0, SPEED_10, SPEED_100, SPEED_1000 */
34         int             duplex;         /* DUPLEX_HALF or DUPLEX_FULL */
35
36         /* non-zero values of the following fields override defaults */
37         u32             tx_queue_size;
38         u32             rx_queue_size;
39         u32             tx_sram_addr;
40         u32             tx_sram_size;
41         u32             rx_sram_addr;
42         u32             rx_sram_size;
43         u8              mac_addr[6];    /* mac address if non-zero*/
44 };
45
46 #endif /* __LINUX_MV643XX_ETH_H */