xref: /linux/include/linux/mv643xx_eth.h (revision f2ce825d2a89b30af14fa577298fecaab7bc9504)
1c4a6a2abSLennert Buytenhek /*
2c4a6a2abSLennert Buytenhek  * MV-643XX ethernet platform device data definition file.
3c4a6a2abSLennert Buytenhek  */
4fa3959f4SLennert Buytenhek 
5c4a6a2abSLennert Buytenhek #ifndef __LINUX_MV643XX_ETH_H
6c4a6a2abSLennert Buytenhek #define __LINUX_MV643XX_ETH_H
7c4a6a2abSLennert Buytenhek 
8*f2ce825dSLennert Buytenhek #include <linux/mbus.h>
9*f2ce825dSLennert Buytenhek 
10c4a6a2abSLennert Buytenhek #define MV643XX_ETH_SHARED_NAME		"mv643xx_eth_shared"
11c4a6a2abSLennert Buytenhek #define MV643XX_ETH_NAME		"mv643xx_eth"
12c4a6a2abSLennert Buytenhek #define MV643XX_ETH_SHARED_REGS		0x2000
13c4a6a2abSLennert Buytenhek #define MV643XX_ETH_SHARED_REGS_SIZE	0x2000
143077d78aSDale Farnsworth #define MV643XX_ETH_BAR_4		0x2220
153077d78aSDale Farnsworth #define MV643XX_ETH_SIZE_REG_4		0x2224
163077d78aSDale Farnsworth #define MV643XX_ETH_BASE_ADDR_ENABLE_REG	0x2290
17c4a6a2abSLennert Buytenhek 
18*f2ce825dSLennert Buytenhek struct mv643xx_eth_shared_platform_data {
19*f2ce825dSLennert Buytenhek 	struct mbus_dram_target_info	*dram;
20*f2ce825dSLennert Buytenhek };
21*f2ce825dSLennert Buytenhek 
22c4a6a2abSLennert Buytenhek struct mv643xx_eth_platform_data {
23fa3959f4SLennert Buytenhek 	struct platform_device	*shared;
24c4a6a2abSLennert Buytenhek 	int		port_number;
25fa3959f4SLennert Buytenhek 
26c4a6a2abSLennert Buytenhek 	u16		force_phy_addr;	/* force override if phy_addr == 0 */
27c4a6a2abSLennert Buytenhek 	u16		phy_addr;
28c4a6a2abSLennert Buytenhek 
29c4a6a2abSLennert Buytenhek 	/* If speed is 0, then speed and duplex are autonegotiated. */
30c4a6a2abSLennert Buytenhek 	int		speed;		/* 0, SPEED_10, SPEED_100, SPEED_1000 */
31c4a6a2abSLennert Buytenhek 	int		duplex;		/* DUPLEX_HALF or DUPLEX_FULL */
32c4a6a2abSLennert Buytenhek 
33c4a6a2abSLennert Buytenhek 	/* non-zero values of the following fields override defaults */
34c4a6a2abSLennert Buytenhek 	u32		tx_queue_size;
35c4a6a2abSLennert Buytenhek 	u32		rx_queue_size;
36c4a6a2abSLennert Buytenhek 	u32		tx_sram_addr;
37c4a6a2abSLennert Buytenhek 	u32		tx_sram_size;
38c4a6a2abSLennert Buytenhek 	u32		rx_sram_addr;
39c4a6a2abSLennert Buytenhek 	u32		rx_sram_size;
40c4a6a2abSLennert Buytenhek 	u8		mac_addr[6];	/* mac address if non-zero*/
41c4a6a2abSLennert Buytenhek };
42c4a6a2abSLennert Buytenhek 
43c4a6a2abSLennert Buytenhek #endif /* __LINUX_MV643XX_ETH_H */
44